作者:小迅
链接: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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。