Я застрял с вопросом домашней работы по поводу чего-то довольно глупого.
Миссия - найти наименьшую сумму столбца в двумерном массиве и вернуть его индекс. Циклы не допускаются, только рекурсия.
Я справился с кодом, но я застрял с простой задачей вычисления самого столбца.
Это код, который я написал до сих пор:
public static int maxSumCol(int[][] a) {
int maxCol=calculateCol(a, 0, 0);
int colIndex=0;
return maxSumCol(a, 0, 0, maxCol, colIndex);
}
private static int maxSumCol(int[][] a, int i, int j, int maxCol, int colIndex) {
if (j<a.length){
int tempCol=calculateCol(a, i, j);
if (tempCol > maxCol)
colIndex=j;
return maxSumCol(a, i, j+1, maxCol, colIndex);
}
return colIndex;
}
И этот метод, который я построил для вычисления суммы столбца:
private static int calculateCol(int[][] a, int row, int col){
if (row<=a.length-1)
return a[row][col] + calculateCol(a, row+1, col);
return 0;
}
К сожалению, я получаю ArrayIndexOutOfBoundsException каждый раз, когда я запускаю код.
Я не могу понять, где моя ошибка.