LeetCode- 1329.将矩阵按对角线排序

/** 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;
    }
}
发布了72 篇原创文章 · 获赞 7 · 访问量 4121

猜你喜欢

转载自blog.csdn.net/l769440473/article/details/104589339
今日推荐