没有什么特别的难度, 就是特别朴素的排序。主要是边界控制
class Solution {
public:
vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {
int r = mat.size(), c = mat[0].size();
for (int i = 0; i < c; ++i)
{
vector<int>buff; buff.clear();
for (int j = 0;j < c && j + i < r; ++j)
{
buff.push_back(mat[i + j][j]);
}
sort(buff.begin(), buff.end());
for (int j = 0; j < buff.size(); ++j)
{
mat[i + j][j] = buff[j];
}
}
for (int i = 0; i < c; ++i)
{
vector<int>buff; buff.clear();
for (int j = 0;j < r && j + i < c; ++j)
{
buff.push_back(mat[j][i + j]);
//cout << j << " " << i + j << endl;
}
sort(buff.begin(), buff.end());
for (int j = 0; j < buff.size(); ++j)
{
mat[j][i