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

Java初始化3D数组触发Array Index Out Of Bounds Exception求助

解决Java 3D数组初始化的ArrayIndexOutOfBoundsException错误

错误原因

你的代码触发数组越界的核心问题在循环终止条件:

  • 第一维度数组长度为prices.length,Java数组索引从0开始,有效索引范围是0到prices.length - 1,但外层循环写的是i <= prices.length,当i等于prices.length时,直接超出第一维度的最大索引,触发报错。
  • 第二、第三维度的数组长度都是2,有效索引只有0和1,但内层循环用了j <= 2和k <= 2,当j或k等于2时同样会越界,只是第一维度的错误先被触发。

修正后的代码

public static int maxProfit(int[] prices) {
    int[][][] dp = new int[prices.length][2][2]; // 初始化3D数组
    // 循环终止条件改为小于数组长度,而非小于等于
    for(int i = 0; i < prices.length; i++){
        for(int j = 0; j < 2; j++){
            for(int k = 0; k < 2; k++){
                dp[i][j][k] = 10001;
            }
        }
    }
    // 补充int类型方法的返回值(可根据实际需求调整返回内容)
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:35:29