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

Java中如何获取二维数组平均数值最高的行?

解决思路与代码修改

要实现返回平均数值最高的行,核心是在计算每行平均值的同时,追踪当前最大的平均值及其对应的行。你的现有代码只计算了每行平均值并返回最后一行的结果,缺少追踪逻辑,以下是具体修改方案:

关键改动点

  • 新增变量记录当前最大平均值(初始设为负无穷,确保第一行平均值能被正确捕获)
  • 新增变量记录最大平均值对应的行索引
  • 修改方法返回类型为int[](因为要返回整行数组,而非单个平均值)
  • 遍历每行时,完成平均值计算后立即与当前最大值比较,更新追踪变量

修改后的完整代码

int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

public static int[] getRowWithHighestAverage(int grid[][]) {
    // 处理空数组边界情况
    if (grid == null || grid.length == 0) {
        return new int[0];
    }

    int maxRowIndex = 0;
    double maxAverage = Double.NEGATIVE_INFINITY;

    for (int i = 0; i < grid.length; i++) {
        double sum = 0;
        // 计算当前行总和
        for (int j = 0; j < grid[i].length; j++) {
            sum += grid[i][j];
        }
        double currentAverage = sum / grid[i].length;
        System.out.println("Average of row " + (i+1) + " = " + currentAverage);

        // 比较并更新最大平均值与对应行索引
        if (currentAverage > maxAverage) {
            maxAverage = currentAverage;
            maxRowIndex = i;
        }
    }

    // 返回平均最高的行
    return grid[maxRowIndex];
}

额外说明

  1. 边界处理:加入了空数组判断,避免空指针异常
  2. 多行同最大值:如果有多个行平均值相同且都是最高,代码会返回第一个遇到的行;若需要返回所有最高行,可改为返回List<int[]>类型
  3. 变量作用域优化:将sum放在循环内初始化,避免重复重置,代码更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:51:13