You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在二维数组中检测相邻重复元素并实现布尔验证方法

二维数组每行连续重复元素检测方案

需求回顾

需要实现一个可复用的布尔方法,检测二维数组的每一行是否存在至少一对连续相邻的重复元素:

  • 存在连续重复则对该行输出yes,否则输出no
  • 仅判断连续相邻的重复,非连续重复(如第一行的两个23)不触发yes

测试数据示例:

int[][] testArray = {
    {23, 14, 42, 34, 23}, // 非连续重复 → no
    {35, 35, 42, 28, 38}, // 连续重复 → yes
    {35, 34, 45, 46, 47}, // 无重复 → no
    {40, 43, 35, 50, 49}, // 无重复 → no
    {21, 33, 10, 51, 51}  // 连续重复 → yes
};

现有代码的核心问题

你尝试的几个方法都存在关键错误:

  • 索引越界:误用array.length(二维数组的行数)代替element.length(当前行的元素数),循环边界超出当前行的元素范围;或直接访问i+1却未限制循环上限
  • 逻辑错误:
    • fourthValidation中错误比较数组引用array[i]==array[i+1],而非数组元素
    • validation中i变量作用域错误,外层循环只执行一次就把i累加到最大值
    • 不必要的三重循环,完全冗余且降低效率
  • 输出逻辑缺失:部分方法仅记录值却未按要求输出yes/no

正确实现方案

1. 单一行的连续重复检测方法

先实现一个独立的布尔方法,专注检测单行是否存在连续重复,逻辑清晰且可复用:

// 检测单行是否存在连续相邻的重复元素
public static boolean hasConsecutiveDuplicates(int[] row) {
    // 行元素少于2个时不可能有连续重复
    if (row == null || row.length < 2) {
        return false;
    }
    // 从第2个元素开始,和前一个元素比较
    for (int i = 1; i < row.length; i++) {
        if (row[i] == row[i-1]) {
            return true; // 找到连续重复,立即返回true
        }
    }
    return false; // 遍历完无连续重复
}

2. 二维数组遍历与输出方法

调用上面的方法,遍历二维数组的每一行,按要求输出结果:

// 遍历二维数组,对每行输出yes/no
public static void checkRowsForConsecutiveDuplicates(int[][] array) {
    if (array == null || array.length == 0) {
        return;
    }
    for (int[] row : array) {
        if (hasConsecutiveDuplicates(row)) {
            System.out.println("yes");
        } else {
            System.out.println("no");
        }
    }
}

3. 测试调用

public static void main(String[] args) {
    int[][] testArray = {
        {23, 14, 42, 34, 23},
        {35, 35, 42, 28, 38},
        {35, 34, 45, 46, 47},
        {40, 43, 35, 50, 49},
        {21, 33, 10, 51, 51}
    };
    checkRowsForConsecutiveDuplicates(testArray);
}

输出结果:

no
yes
no
no
yes

关键细节说明

  • 提前判断边界情况:行为空、元素数不足2时直接返回false,避免索引越界
  • 短路求值:找到连续重复后立即返回,无需遍历整行,提升效率
  • 职责分离:单行检测和数组遍历分开,代码更易维护和复用

内容的提问来源于stack exchange,提问作者Skyhigh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:15:31