8.28 模拟
lc3446.
利用同一对角线差相等提取vec tmp,sort后再填入
class Solution {
public:
vector<vector<int>> sortMatrix(vector<vector<int>>& grid)
{
int n = grid.size();
for (int i = 0; i < n; i++)
{ //提取
vector<int> vec;
for (int k = 0; i + k < n; k++) vec.push_back(grid[i + k][k]);
//排序
sort(vec.begin(), vec.end(),greater<int>());
//填入
for (int k = 0; i + k < n; k++) grid[i + k][k] = vec[k];
}
// 枚举右上角
for (int j = 1; j < n; j++)
{
vector<int> vec;
for (int k = 0; j + k < n; k++) vec.push_back(grid[k][j + k]);
sort(vec.begin(), vec.end());
for (int k = 0; j + k < n; k++) grid[k][j + k] = vec[k];
}
return grid;
}
};