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

如何查找M行N列矩阵各列最大值的行索引并输出?

获取矩阵每列最大值对应的行索引

现有一个M行N列的矩阵,需要查找每一列中最大值对应的行索引(行号,从1开始计数)。

示例:
输入2×2矩阵:

1 5
2 4

当前仅能输出各列最大值:2 5,期望输出对应行索引:2 1。

原实现输出列最大值的C#函数代码如下:

// 查找并输出每列最大值的函数
public static void MaxColumn(int cols, int rows, int[,] matrix)
{
    for (int i = 0; i < cols; i++)
    {
        int max = matrix[0, i];
        for (int j = 1; j < rows; j++)
        {
            if (matrix[j, i] > max)
                max = matrix[j, i];
        }

        Console.Write(max + " ");
    }
}

修改后的实现(输出行索引)

只需在原代码基础上增加对行索引的跟踪,最终输出1基的行号即可:

// 查找并输出每列最大值对应行索引的函数
public static void MaxColumnRowIndex(int cols, int rows, int[,] matrix)
{
    for (int i = 0; i < cols; i++)
    {
        int max = matrix[0, i];
        int maxRowIndex = 0; // 初始记录第一行的数组索引(0基)
        for (int j = 1; j < rows; j++)
        {
            if (matrix[j, i] > max)
            {
                max = matrix[j, i];
                maxRowIndex = j; // 更新最大值所在的行数组索引
            }
        }
        // 转换为1基行号后输出
        Console.Write((maxRowIndex + 1) + " ");
    }
}

关键修改点

  • 新增maxRowIndex变量,用于跟踪当前列最大值所在的行(数组0基索引)
  • 每次发现更大值时,同步更新最大值和对应的行索引
  • 输出时将0基索引加1,转换为符合示例要求的1基行号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:35:19