LeetCode·每日一题·2500. 删除每行中的最大值·模拟

作者:小迅
链接:https://leetcode.cn/problems/delete-greatest-value-in-each-row/solutions/2360713/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-rhmz/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目

示例

思路

题意 -> 给定一个二维数组,按给定要求 求和。

  • 从每一行中取一个最大值并删除改元素
  • 从上述最大值中取一个最大值累和
  • 重复上述操作直到数组为空
  • 返回累和值

题目已经说的非常清楚了,直接按照题目意思进行模拟,先枚举每一行,从中取出该行的最大值,并将该位置元素置为 -1, 表示删除改元素,然后将每一行的最大值都与全局最大值进行比较,保存当前整体最大值元素值,并累加,最后返回累加值。

代码注释超级详细

代码

int deleteGreatestValue(int** grid, int gridSize, int* gridColSize){
    int sum = 0;
    for (int i = 0; i < gridColSize[0]; ++i) {//枚举删除次数
        int count = -1;//全局最大值
        for (int n = 0; n < gridSize; ++n) {//枚举行
            int max = -1;
            int temp_i = 0;
            int temp_j = 0;
            for (int m = 0; m < gridColSize[0]; ++m) {//枚举该行中的最大值
                if (max < grid[n][m]) {//保存最大值和位置
                    max = grid[n][m];
                    temp_i = n;
                    temp_j = m;
                }
            }
            grid[temp_i][temp_j] = -1;//最大值删除
            count = fmax(count, max);//保存每行最大值
        }
        sum += count;
    }
    return sum;
}

作者:小迅
链接:https://leetcode.cn/problems/delete-greatest-value-in-each-row/solutions/2360713/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-rhmz/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/m0_64560763/article/details/131953102