赞
踩
/** 1329.将矩阵按对角线排序
* @author 作者 Your-Name:
* @version 创建时间:2020年2月20日 上午9:29:03
* 给你一个 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]]
*/
- public class 将矩阵按对角线排序 {
- public static void main(String[] args)
- {
- int[][] mat = {{3,3,1,1},{2,2,1,2},{1,1,1,2}};
- diagonalSort(mat);
- }
- public static int[][] diagonalSort(int[][] mat) {
- int m = mat.length;
- int n = mat[0].length;
- for(int i=0;i<m;i++)
- {
- for(int j=0;j<n;j++)
- {
- if(i>0&&j>0)
- continue;
- List<Integer> list = new ArrayList<>();
- int a=i,b=j;
- while(a<m&&b<n)
- {
- list.add(mat[a][b]);
- a++;
- b++;
- }
- Collections.sort(list);
- a = i;
- b = j;
- int index=0;
- while(a<m&&b<n)
- {
- mat[a][b] = list.get(index++);
- a++;
- b++;
- }
-
- }
- }
- return mat;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。