作者:小迅
链接:https://leetcode.cn/problems/sum-in-a-matrix/solutions/2330084/pai-xu-zhu-shi-chao-ji-xiang-xi-by-xun-g-a3gw/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
示例
思路
题意 -> 给定一个二维数组,每次取每一行的最大值构成一列,在该列中取最大值组成分数数组,返回分数数组的最大值和
题目已经说的非常清楚了,直接将二维数组的每一行按升序或者降序排列,然后枚举每一列的最大值进行累和,返回即可。
代码注释超级详细
代码
static int cmp(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}//排序
int matrixSum(int** nums, int numsSize, int* numsColSize) {
int res = 0;
int m = numsSize;
int n = numsColSize[0];//初始化
for (int i = 0; i < m; i++) {//排序每一行
qsort(nums[i], n, sizeof(int), cmp);
}
for (int j = 0; j < n; j++) {//枚举每一列
int maxVal = 0;
for (int i = 0; i < m; i++) {//取当前列中的最大值
maxVal = fmax(maxVal, nums[i][j]);
}
res += maxVal;//累和
}
return res;
}
作者:小迅
链接:https://leetcode.cn/problems/sum-in-a-matrix/solutions/2330084/pai-xu-zhu-shi-chao-ji-xiang-xi-by-xun-g-a3gw/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。