Define a method in which, given a two-dimensional array, evaluates if it has at least two identical rows
我试图想出一个算法来做到这一点,但我没有走得太远。这是我得到的:
public static boolean righeUguali(int[][] a){
boolean rUguali=false;
for(int i=0; i<a.length; i++)
for(int j=0; i<a[i].length; j++)
if(Arrays.equals(a[i],a[j]))
rUguali = true;
return rUguali;
你能帮我修复这段代码吗?
最佳答案
- 您需要确保您没有将该行与其自身进行比较。您确保通过以
i+1
开始 - 两个循环都需要遍历行
- 两行的第一行不能是最后一行,否则就没有第二行可以比较了。
- 优化:您可以在找到两个相等的行后立即终止
j
修改后的代码:
public static boolean righeUguali(int[][] a){
for(int i=0; i<a.length-1; i++)
for(int j=i+1; i<a.length; j++)
if(Arrays.equals(a[i],a[j]))
return true;
return false;
}
关于java - 验证二维数组是否有两个相等行的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37790995/