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

如何实现矩阵对角线遍历 解决outOfBounds数组越界报错

错误原因

  • 第一段循环的内层终止条件i>=g逻辑存在致命错误:i初始值为g且每次循环自增,该条件永远成立,会持续循环直到i、j超出数组下标范围,触发outOfBounds报错。
  • 现有两段循环的遍历逻辑重复覆盖中心对角线,遍历顺序完全不符合预期输出要求。

修正后代码

你需要实现的是3×3矩阵按j-i差值递增的斜向遍历,默认输入矩阵结构为:

1 2 3
4 5 6
7 8 9

可输出预期结果7-4-8-1-5-9-2-6-3的代码如下:

// n为矩阵边长,示例取3
int n = 3;
int[][] a = {{1,2,3},{4,5,6},{7,8,9}};
StringBuilder res = new StringBuilder();

// 遍历所有j-i的可能差值,范围是-(n-1)到n-1
for(int diff = -n + 1; diff < n; diff++) {
    for(int i = 0; i < n; i++) {
        int j = i + diff;
        // 校验j的合法性
        if(j >= 0 && j < n) {
            res.append(a[i][j]).append("-");
        }
    }
}
// 移除末尾多余的分隔符
if(res.length() > 0) {
    res.deleteCharAt(res.length() - 1);
}
System.out.println(res.toString());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:39:03