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

二维数组各行绝对值之和的最大值求解及代码问询

解决二维数组行绝对值和最大值问题

看起来你已经有了不错的开头,但代码还有几个需要修正和补全的地方,我来帮你完善它:

首先,先指出你现有代码里的几个小问题:

  • 你硬编码了maxRowValue数组,但方法参数是array,这样方法无法处理外部传入的数组,完全失去了通用性
  • 计算行和的时候没有对元素取绝对值,这不符合“绝对值之和”的核心需求
  • 代码写到一半中断了,后续的行和计算逻辑需要补全

下面是修正并完成后的完整代码:

public static int maxRowAbsSum(int[][] array) {
    // 先处理边界情况:避免空指针或无效输入
    if (array == null || array.length == 0 || array[0].length == 0) {
        return 0; // 也可以根据需求抛出IllegalArgumentException
    }

    int maxSum = 0;
    // 遍历每一行
    for (int row = 0; row < array.length; row++) {
        int currentRowSum = 0;
        // 计算当前行的绝对值之和
        for (int col = 0; col < array[row].length; col++) {
            currentRowSum += Math.abs(array[row][col]);
        }
        // 比较并更新最大值
        if (currentRowSum > maxSum) {
            maxSum = currentRowSum;
        }
    }
    return maxSum;
}

// 测试方法验证结果
public static void main(String[] args) {
    int[][] testArray = { {3, -1, 4, 0}, {5, 9, -2, 6}, {5, 3, 7, -8} };
    System.out.println(maxRowAbsSum(testArray)); // 输出23,对应第三行的5+3+7+8
}

代码细节解释:

  • 边界处理:先判断数组是否为空或行列长度为0,避免运行时抛出空指针异常
  • 行遍历逻辑:外层循环逐个处理每一行
  • 绝对值求和:内层循环对当前行的每个元素取绝对值后累加,满足需求
  • 最大值更新:每计算完一行的和,就和当前记录的最大值对比,保留更大的那个
  • 测试用例:用你给出的示例数组验证,第三行的绝对值和是23,确实是最大值

如果还需要记录最大值所在的行索引,只需要稍作修改添加一个变量即可:

public static int maxRowAbsSum(int[][] array) {
    if (array == null || array.length == 0 || array[0].length == 0) {
        return -1; // 用-1标记无效输入
    }

    int maxSum = 0;
    int maxRowIndex = 0;
    for (int row = 0; row < array.length; row++) {
        int currentRowSum = 0;
        for (int col = 0; col < array[row].length; col++) {
            currentRowSum += Math.abs(array[row][col]);
        }
        if (currentRowSum > maxSum) {
            maxSum = currentRowSum;
            maxRowIndex = row;
        }
    }
    System.out.println("最大值所在行索引:" + maxRowIndex);
    return maxSum;
}

这样就能同时拿到最大值和对应的行位置啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:59:18