Если равных элементов матрицы несколько, то как вывести первый элемент? Java

Возникает проблема в третьей строке с вводом 0 4 4, нужно, чтобы программа выводила 0, а не 4.

На вход подаётся размерность матрицы и сами элементы матрицы. Найдите максимальный элемент матрицы. Если таковых несколько, то вынести индексы первого. Пример ввода: 3 3 1 1 4 3 2 1 0 4 4 Вывод: 0 2

    public static void main(String[] args) {
        int n,m;
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        m = scanner.nextInt();

        int[][]matrix = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                matrix[i][j] = scanner.nextInt();
            }
        }
        int max = matrix[0][0];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(max<matrix[i][j])
                    max = matrix[i][j];               
                }
            }
            System.out.println(max);
            max = Integer.MIN_VALUE;
        }
    }

}

Ответы (1 шт):

Автор решения: Nowhere Man

Просто храните соответствующую пару индексов и обновляйте её при поиске максимума/минимума:

int maxRow = -1;
int maxCol = -1;

for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
        if (maxCol == -1 || matrix[i][j] > matrix[maxRow][maxCol]) {
            maxRow = i;
            maxCol = j;
        }
    }
}
if (maxCol > -1) {
    System.out.printf("max [%d][%d] = %d%n", maxRow, maxCol, matrix[maxRow][maxCol]);
} else {
    System.out.println("No max is found");
}
→ Ссылка