如何在2D数组中迭代低谷行然后低谷列?

时间:2019-04-07 06:57:36

标签: java for-loop matrix

我有一个2D数组,我想找到每一行和每一列的最小值。但是,例如:假设我有一个5x5对称矩阵,例如

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(不考虑先前的min值为4和0)等等...

我以为我可以使用另一个嵌套,将新索引视为循环的起点,但是我不确定如何回到遍历行的方式

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

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

    if (menor > matriz[1][i] && 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

0 个答案:

没有答案