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

Java二维数组中如何查找指定行最后一个2的索引

解决Java二维数组第0行最后一个数值2的索引查找问题

原代码存在的问题

  • 变量用途混淆:x初始被赋值为数组行数,之后又被赋值为数组元素值,完全没用来存储目标索引
  • 判断逻辑错误:你要找的是数值2,但代码里判断的是ans[0][y] != 0,不符合需求
  • 未终止循环:找到目标元素后没有退出循环,会继续向前遍历,可能覆盖结果
  • 语法不完整:if代码块和while循环都没有闭合,会导致编译错误

修正后的实现方法

方法1:修正while循环

// 假设ans是你的二维int数组
int targetRow = 0;
int lastIndex = -1; // 默认没找到时返回-1
int y = ans[targetRow].length - 1; // 从第0行最后一列开始遍历

while (y >= 0) {
    if (ans[targetRow][y] == 2) {
        lastIndex = y;
        break; // 找到后立即退出循环,保留最后一个匹配的索引
    }
    y--;
}

if (lastIndex != -1) {
    System.out.println("行" + targetRow + "列" + lastIndex);
} else {
    System.out.println("第0行中未找到数值2");
}

方法2:使用for循环(更直观)

int targetRow = 0;
int lastIndex = -1;
int[] row = ans[targetRow];

// 从后往前遍历第0行
for (int i = row.length - 1; i >= 0; i--) {
    if (row[i] == 2) {
        lastIndex = i;
        break;
    }
}

// 输出结果
if (lastIndex != -1) {
    System.out.printf("行%d列%d%n", targetRow, lastIndex);
} else {
    System.out.println("第0行不存在数值2");
}

说明

  • 两种方法都是从第0行的最后一列开始反向遍历,找到第一个匹配的2就停止,这样得到的就是最后一个出现的2的索引
  • 增加了未找到的情况处理,避免索引无效的问题

内容的提问来源于stack exchange,提问作者David T Laszlo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:55:25