Как выполнить итерацию по строке, а затем по столбцу в 2D-массиве?

#java #for-loop #matrix

#java #цикл for #матрица

Вопрос:

У меня есть 2D-массив, и я хочу найти минимальное значение для каждой строки и столбца. Но, например: допустим, у меня есть симметричная матрица размером 5×5, подобная

 int matrix [ ][ ] = 
{ { 0, 8, 3, 7, 10 },
{ 8, 0, 5, 9, 4 },
{ 3, 5, 0, 6, 7 },
{ 7, 9, 6, 0, 9 },
{ 10, 4, 7, 9, 0 } }
  

Если я начну со строки 2, я должен выполнить итерацию через 8,0,5,9,4, и я должен напечатать число 4, потому что это минимальное значение (я не рассматриваю 0), тогда я должен начать выполнять итерацию по столбцу именно там, где я оставил или закончил. Итак, я должен начать итерацию снова, но начиная с index[4], и col будет равен 10, 4, 7, 9, 0, а минимальное значение col будет равно 7 (без учета предыдущего минимального значения, которое было 4 и 0) и так далее…

Я подумал, что мог бы использовать другой вложенный для этого, рассматривая новый индекс как отправную точку для цикла, но тогда я не уверен, как вернуться к итерации по строкам

 int menor = matriz[1][0];
int i, j, indice = 0;

for (i = 0; i < matriz.length; i  ) {

    if (menor > matriz[1][i] amp;amp; matriz[1][i] != 0 || menor == 0) {
        menor = matriz[1][i];
        indice = i;
    }
    System.out.print("Elemento ubicado en "   i   " : ");
    System.out.println(matriz[1][i]   " ");

}
System.out.println();
System.out.println("Elemento menor es "   menor   " el cual esta ubicado: "   indice);
  

Мой конечный результат должен быть чем-то вроде 4, 7, 3, 7, 9

Комментарии:

1. обработка, которую вы описываете, неясна. почему вы начинаете со строки 2 и почему затем переходите к столбцу 4? почему бы не выполнить итерацию по всем строкам, а затем по всем столбцам?

2. Это просто конкретный случай. Я просто хотел узнать, возможно ли это сделать. То, что я хочу сделать, это перейти строка-> столбец-> строка и так далее, пока больше не останется итерации. Есть ли другой способ выполнить сравнение?

3. да, самый очевидный способ — выполнить итерацию по всем строкам, а затем выполнить итерацию по всем столбцам