Есть метод который находит прямоугольники в матрице, первый выдает верный результат, после попытки записать ветвление If-else в одно условие ловлю java.lang.ArrayIndexOutOfBoundsException: -1.
public static int getRectangleCount(byte[][] a)
{
int count = 0;
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length; i++) {
if (a[i][j] == 1) {
if (i == 0){
if (j == 0) {
count++;
} else if (a[i][j - 1] == 0) {
count++;
}
} else if (a[i - 1][j] == 0) {
if (j == 0){
count++;
} else if (a[i][j - 1] == 0) {
count++;
}
}
}
}
}
return count;
}
public static int getRectangleCount(byte[][] a)
{
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (a[i][j] == 1 && ((i == 0 && (j == 0 || a[i][j-1] == 0)) || (a[i-1][j] == 0 && (j == 0 || a[i][j-1] == 0)))) {
count++;
}
}
}
return count;
}