Эй, ребята, я задаю вопрос, где мне нужно найти точку в матрице A из N x M строк, такую чтоРассчитайте сумму строк выше и ниже точки, а также сумму столбцов слева и справа a
сумма строк выше точки равна сумме строки
Рассмотрим пример
/**
* A[0][0] = 2 A[0][1] = 7 A[0][2] = 5
* A[1][0] = 3 A[1][1] = 1 A[1][2] = 1
* A[2][0] = 2 A[2][1] = 1 A[2][2] = -7
* A[3][0] = 0 A[3][1] = 2 A[3][2] = 1
* A[4][0] = 1 A[4][1] = 6 A[4][2] = 8
* @param matrix
* @return
*/
в этом примере, если мы рассмотрим точку А [1] [1], может что строка выше (сумма = 14) равна сумме строк ниже точки. Может ли кто-нибудь помочь мне в этом?
Я до сих пор получил это далеко. Но я знаю, что это пристойный подход.
public int solution(int[][] matrix) {
int rows = matrix[0].length;
int columns = matrix.length;
int sumabove = 0;
int sumbelow = 0;
for(int i = 1; i < rows; i++ ) {
for (int j = 0; j < columns; j++) {
sumabove += matrix[i - 1][j];
sumbelow += matrix[i + 1][j];
}
}
return 0;
}
Вы хотите, чтобы сумма всех строк выше? Или только один ряд выше. Вопрос довольно неясен ... –
Рассчитайте 'sum' для каждой строки в одном цикле (' for'), а также 'totalRowsSum'. Затем в еще одном цикле сравнивайте предыдущие строки 'sum' (который увеличивается на каждой итерации' currentRowSum') с 'totalRowsSum - sum'. – Regent
, так что вы хотите программу, которая разделит матрицу на 2 так, чтобы верх и низ имели одинаковую сумму? – bakriawad