当前位置:   article > 正文

LeetCode 1329. 将矩阵按对角线排序_leetcode 1329:将矩阵按对角线排序c++

leetcode 1329:将矩阵按对角线排序c++

原题目:https://leetcode-cn.com/problems/sort-the-matrix-diagonally/

 

思路:

用临时数组存储每一个对角线的元素,排序后,赋值给新的矩阵对角线即可

 

代码:

  1. class Solution {
  2. public:
  3. vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {
  4. if(mat.size()==0 || mat[0].size()==0) return mat;
  5. int n = mat.size(),m = mat[0].size();
  6. vector<vector<int>> ans(n,vector<int>(m));
  7. for(int i=m-1;i>=0;--i){
  8. int row=0,col=i,index=-1;
  9. vector<int> tmp;
  10. while(row<n&&col<m){
  11. tmp.push_back(mat[row][col]);
  12. ++row;++col;
  13. }
  14. sort(tmp.begin(),tmp.end());
  15. row=0,col = i;
  16. while(row<n&&col<m){
  17. ans[row][col] = tmp[++index];
  18. ++row;++col;
  19. }
  20. }
  21. for(int i=1;i<n;++i){
  22. int row=i,col=0,index=-1;
  23. vector<int> tmp;
  24. while(row<n&&col<m){
  25. tmp.push_back(mat[row][col]);
  26. ++row;++col;
  27. }
  28. sort(tmp.begin(),tmp.end());
  29. row=i,col = 0;
  30. while(row<n&&col<m){
  31. ans[row][col] = tmp[++index];
  32. ++row;++col;
  33. }
  34. }
  35. return ans;
  36. }
  37. };

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/530349
推荐阅读
相关标签
  

闽ICP备14008679号