当前位置:   article > 正文

​LeetCode解法汇总1329. 将矩阵按对角线排序

​LeetCode解法汇总1329. 将矩阵按对角线排序

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:. - 力扣(LeetCode)


描述:

矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵 mat 有 6 行 3 列,从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]mat[3][1] 和 mat[4][2] 。

给你一个 m * n 的整数矩阵 mat ,请你将同一条 矩阵对角线 上的元素按升序排序后,返回排好序的矩阵。

示例 1:

输入:mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]
输出:[[1,1,1,1],[1,2,2,2],[1,2,3,3]]

示例 2:

输入:mat = [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]
输出:[[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]

提示:

  • m == mat.length
  • n == mat[i].length
  • 1 <= m, n <= 100
  • 1 <= mat[i][j] <= 100

解题思路:

这道题其实就是一个排序题,只不过排序是斜向的。

下面sortArray方法,代表从x,y轴开始的斜向排序。

代码:

  1. class Solution1329
  2. {
  3. public:
  4. vector<vector<int>> diagonalSort(vector<vector<int>> &mat)
  5. {
  6. for (int i = 0; i < mat.size(); i++)
  7. {
  8. sortArray(0, i, mat);
  9. }
  10. for (int i = 0; i < mat[0].size(); i++)
  11. {
  12. sortArray(i, 0, mat);
  13. }
  14. return mat;
  15. }
  16. void sortArray(int x, int y, vector<vector<int>> &mat)
  17. {
  18. int xSize = mat[0].size();
  19. int ySize = mat.size();
  20. while (x < xSize && y < ySize)
  21. {
  22. int itemIndexMin = 0;
  23. int itemIndex = 0;
  24. while (x + itemIndex < xSize && y + itemIndex < ySize)
  25. {
  26. if (mat[y + itemIndex][x + itemIndex] < mat[y + itemIndexMin][x + itemIndexMin])
  27. {
  28. itemIndexMin = itemIndex;
  29. }
  30. itemIndex++;
  31. }
  32. exchange(mat, x, y, x + itemIndexMin, y + itemIndexMin);
  33. x++;
  34. y++;
  35. }
  36. }
  37. void exchange(vector<vector<int>> &mat, int x1, int y1, int x2, int y2)
  38. {
  39. int v = mat[y1][x1];
  40. mat[y1][x1] = mat[y2][x2];
  41. mat[y2][x2] = v;
  42. }
  43. };

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

闽ICP备14008679号