其他分享
首页 > 其他分享> > 1329. Sort the Matrix Diagonally

1329. Sort the Matrix Diagonally

作者:互联网

Given a m * n matrix mat of integers, sort it diagonally in ascending order from the top-left to the bottom-right then return the sorted array.

 

Example 1:

Input: mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]
Output: [[1,1,1,1],[1,2,2,2],[1,2,3,3]]

 

Constraints:

class Solution {
    public int[][] diagonalSort(int[][] mat) {
        int m = mat.length, n = mat[0].length;
        Map<Integer, PriorityQueue<Integer>> map = new HashMap();
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){
                map.putIfAbsent(i-j, new PriorityQueue());
                map.get(i - j).offer(mat[i][j]);
            }
        }
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){
                mat[i][j] = map.get(i - j).poll();
            }
        }
        return mat;
    }
}

putIfAbsent,如果key不存在就put,存在就不用管

对角线有什么特性?

下表相减相同 -- i - j。

什么东西能自动排序?

PriorityQueue

标签:Sort,map,mat,int,1329,putIfAbsent,++,length,Diagonally
来源: https://www.cnblogs.com/wentiliangkaihua/p/12239553.html