java - 验证二维数组是否有两个相等行的算法

标签 java arrays algorithm

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/

相关文章:

java - 在@Entity中使用@Cache会出现错误

arrays - 函数参数中可以有 "If"语句吗?

php - 什么逻辑最适合用于统计同一个人随时间阅读的文章?

java - Android如何在AppCompatAutoCompleteTextView Filtered Items上应用Listener

java - 我应该如何测试 Servlet 过滤器?

java - 创建可执行 jar 的正确方法

php - 如何使用数组中的 date_diff() 查找两个日期之间的差异

Javascript:检查数组中的任何元素是否包含字符串的一部分

algorithm - 在 O(nlog(range of bounds)) 时间内优化列表中的最大值

java - 这两种 Java 插入排序算法哪个更好?