gpt4 book ai didi

java - 如何使用条件语句检查数组是否等于矩阵的一行?

转载 作者:行者123 更新时间:2023-11-29 06:57:11 25 4
gpt4 key购买 nike

我有一个 int 类型的数组,我想检查这个数组的所有元素是否都等于 m×n 矩阵的第 i 行的元素。例如:

array={5,0,2,3};

matrix={{1,3,2,2}{5,0,2,3}{2,1,2,9}};

如果

array[j] = matrix[i][j];

对于所有 j=0,1,2 然后

print("the wanted i is: "+i);

我写了这段代码:

public static void main(String[] args){
int i, j, m=3, n=4;
int[][] A0 = {{0,2,2,5},{2,0,3,1},{0,2,0,5}};
int[] A={0,2,0,5};
int seq = 0;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(A[j] != A0[i][j]){
break;
}
seq= i;
}
}
System.out.print(seq);
}

但它不能很好地工作,因为它总是继续检查直到最后一行。
还有其他更好的主意吗?非常感谢。

最佳答案

首先,如果任何值连续不同,那么你想跳到外循环的下一次迭代。你可以通过给外循环一个标签来做到这一点,和 continue 语句。

其次,一旦找到所有值都匹配的行,你可以跳出外循环。

    OUT: for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
if (A[j] != A0[i][j]) {
continue OUT;
}
}
seq = i;
break;
}

通过使用 Arrays.equals 你可以简化很多,通过消除内部循环,以及所有标签 + 继续黑魔法:

    for (i = 0; i < m; i++) {
if (Arrays.equals(A, A0[i])) {
seq = i;
break;
}
}

关于java - 如何使用条件语句检查数组是否等于矩阵的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com