Class Solution
-
- All Implemented Interfaces:
public final class Solution
1632 - Rank Transform of a Matrix.
Hard
Given an
m x n
matrix
, return a new matrixanswer
whereanswer[row][col]
is the rank ofmatrix[row][col]
.The rank is an integer that represents how large an element is compared to other elements. It is calculated using the following rules:
The rank is an integer starting from
1
.If two elements
p
andq
are in the same row or column , then:The rank should be as small as possible.
The test cases are generated so that
answer
is unique under the given rules.Example 1:
Input: matrix = [1,2,3,4]
Output: [1,2,2,3]
Explanation:
The rank of matrix0 is 1 because it is the smallest integer in its row and column.
The rank of matrix1 is 2 because matrix1> matrix0 and matrix0 is rank 1.
The rank of matrix0 is 2 because matrix0> matrix0 and matrix0 is rank 1.
The rank of matrix1 is 3 because matrix1> matrix1, matrix1> matrix0, and both matrix1 and matrix0 are rank 2.
Example 2:
Input: matrix = [7,7,7,7]
Output: [1,1,1,1]
Example 3:
Input: matrix = [20,-21,14,-19,4,19,22,-47,24,-19,4,19]
Output: [4,2,3,1,3,4,5,1,6,1,3,4]
Constraints:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 500
<code>-10<sup>9</sup><= matrixcol<= 10<sup>9</sup></code>