题目链接:
这个题,我也是看题解才知道怎么做的,其实有一个最简便的做法,就是给每一行数组排序之后找每一列的最大值即可。
代码如下:
int cmp(const void* e1,const void* e2)
{
return *(int*)e1 - *(int*)e2;
}
int deleteGreatestValue(int** grid, int gridSize, int* gridColSize){
int res = 0;
for(int i = 0;i < gridSize;i++)
{
qsort(grid[i],*gridColSize,sizeof(int),cmp);
}
for(int i = 0;i < *gridColSize;i++)
{
int max = 0;
for(int j = 0;j < gridSize;j++)
{
if(grid[j][i] > max)
{
max = grid[j][i];
}
}
res += max;
}
return res;
}