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

寻找二维数组中每行首个1最靠左的行索引

找出二维数组中首个1最靠左的行索引

给定二维数组:

{0, 0, 1, 1, 1},
{0, 0, 1, 1, 1},
{0, 0, 1, 1, 1},
{0, 1, 0, 0, 1}

需要找到首个1最靠近左侧的行(本例中是索引为3的行),并输出该行索引。

现有代码的问题

你当前的代码存在两个核心问题:

  • 使用HashMap存储j(列索引)和count是逻辑错误的:如果多个行的首个1在同一列,后续数据会覆盖之前的;而且我们需要关联的是行索引和其首个1的列索引,而非列索引和计数。
  • count变量完全多余:从j=0开始遍历,遇到非1就count++,最终count的值和j是完全相等的,没必要单独维护。

修正后的解决方案

我们只需要维护两个变量:记录当前最小列索引的minColumn,以及对应的行索引resultRow,遍历过程中实时比较更新即可。

public class Main {
    public static void main(String[] args) {
        int array[][] = {
                {0, 0, 1, 1, 1},
                {0, 0, 1, 1, 1},
                {0, 0, 1, 1, 1},
                {0, 1, 0, 0, 1}
        };

        // 初始化最小列索引为数组列数(确保大于所有有效列索引)
        int minColumn = array[0].length;
        int resultRow = -1;

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] == 1) {
                    // 找到当前行首个1,比较列索引是否更小
                    if (j < minColumn) {
                        minColumn = j;
                        resultRow = i;
                    }
                    // 找到首个1后跳出内层循环,无需继续遍历该行
                    break;
                }
            }
        }

        // 输出结果
        System.out.println(resultRow);
    }
}

逻辑说明

  1. 初始化:minColumn设为数组的列数,保证第一次找到的1的列索引一定会比它小,确保初始值有效。
  2. 遍历行:外层循环逐个遍历每一行(i为行索引)。
  3. 找首个1:内层循环从左到右遍历当前行,找到第一个值为1的元素时,立即比较其列索引j和minColumn:
    • 如果j更小,说明当前行的首个1更靠左,更新minColumn和resultRow。
    • 跳出内层循环,避免无效遍历。
  4. 输出结果:遍历完成后,resultRow就是首个1最靠左的行索引。

边界补充(可选)

如果存在全为0的行,可以在内层循环后判断是否找到1,避免干扰结果:

for (int i = 0; i < array.length; i++) {
    boolean foundOne = false;
    for (int j = 0; j < array[i].length; j++) {
        if (array[i][j] == 1) {
            foundOne = true;
            if (j < minColumn) {
                minColumn = j;
                resultRow = i;
            }
            break;
        }
    }
    // 可选:输出无1的行
    if (!foundOne) {
        System.out.println("行" + i + "中没有1");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:10:19