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

如何正确遍历二维数组实现elementIsUsed元素相等判断及报错解决

二维数组遍历实现相等判断的正确方案

原代码的核心问题

  • 循环逻辑完全无效:仅遍历二维数组的外层长度(即总行数),循环体全程没有使用循环变量做遍历操作,每次都固定对比curYPos/curXPos和nextYPos/nextXPos两个固定坐标的元素,完全没有完成全数组遍历的目标
  • 逻辑边界混淆:elementIsUsed方法本身的规则是判断两个坐标是否相等,属于纯参数对比逻辑,原实现错误把遍历逻辑嵌入到固定坐标判断的代码块中,导致大数组遍历空转

相邻元素相等判断的正确实现

针对“遍历数组,若下一个整数与当前整数相等则返回True”的需求,需要同时遍历二维数组的行维度和列维度,且匹配到符合条件的元素后直接终止遍历,降低大数组场景下的运行开销:

boolean hasAdjacentEqualElement(int[][] array) {
    // 空数组直接返回,避免索引越界
    if (array == null || array.length == 0) return false;
    for (int y = 0; y < array.length; y++) {
        int[] currentRow = array[y];
        // 对比当前行内相邻的左右元素
        for (int x = 1; x < currentRow.length; x++) {
            if (currentRow[x] == currentRow[x - 1]) {
                return true;
            }
        }
        // 对比相邻行的上下元素(如需跨行判断)
        if (y > 0) {
            for (int x = 0; x < currentRow.length; x++) {
                if (currentRow[x] == array[y - 1][x]) {
                    return true;
                }
            }
        }
    }
    return false;
}

elementIsUsed方法的正确实现

按照给定规则,当curYPos与nextYPos相等、且curXPos与nextXPos相等时返回true,该逻辑不需要遍历数组,属于O(1)时间复杂度的参数对比,完全适配大规模数组的使用场景:

boolean elementIsUsed(int curYPos, int curXPos, int nextYPos, int nextXPos) {
    return curYPos == nextYPos && curXPos == nextXPos;
}

如果实际场景是需要判断两个坐标指向的元素值相等,而非坐标本身相等,也无需全量遍历数组,直接通过坐标访问对应元素对比即可,注意补充边界校验避免索引越界:

boolean elementIsUsed(int[][] array, int curYPos, int curXPos, int nextYPos, int nextXPos) {
    // 边界校验
    if (curYPos < 0 || curYPos >= array.length 
        || nextYPos < 0 || nextYPos >= array.length
        || curXPos < 0 || curXPos >= array[curYPos].length
        || nextXPos < 0 || nextXPos >= array[nextYPos].length) {
        return false;
    }
    return array[curYPos][curXPos] == array[nextYPos][nextXPos];
}

原代码常见报错原因

  • 循环变量index未被实际使用,在启用严格语法检查的环境下会触发未使用变量的编译错误
  • 固定坐标访问数组时,坐标值超出数组的行/列边界,触发数组索引越界的运行时错误
  • 大规模数组遍历未做提前终止处理,全量遍历所有元素导致运行超时,被误判为代码运行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 04:24:03