赞
踩
class Solution { public: vector<vector<int>> diagonalSort(vector<vector<int>>& mat) { int m = mat.size(); int n = mat[0].size(); vector<vector<int>>nums; for(int k = m -1; k >= 0; k--) { vector<int>temp; for(int j = 0,i = k ; i < m && j < n; j++,i++) { temp.push_back(mat[i][j]); } sort(temp.begin(), temp.end()); nums.push_back(temp); } for(int k = 1; k < n; k++) { vector<int>temp; for(int j = k,i = 0 ; i < m && j < n; j++,i++) { temp.push_back(mat[i][j]); } sort(temp.begin(), temp.end()); nums.push_back(temp); } //回填 int idx = 0; for(int k = m -1; k >= 0; k--) { for(int j = 0,i = k, d = 0; i < m && j < n; j++,i++,d++) { mat[i][j] = nums[idx][d]; } idx++; } for(int k = 1; k < n; k++) { for(int j = k,i = 0,d = 0 ; i < m && j < n; j++,i++,d++) { mat[i][j] = nums[idx][d]; } idx++; } return mat; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。