File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[][] } mat
3
+ * @return {number[][] }
4
+ */
5
+ const diagonalSort = function ( mat ) {
6
+ const m = mat . length , n = mat [ 0 ] . length
7
+
8
+ for ( let j = 0 ; j < n ; j ++ ) {
9
+ let i = 0 , jj = j
10
+ const tmp = [ ]
11
+ while ( jj < n && i < m ) {
12
+ tmp . push ( mat [ i ++ ] [ jj ++ ] )
13
+ }
14
+ tmp . sort ( ( a , b ) => a - b )
15
+ let idx = 0
16
+ jj = j
17
+ let ii = 0
18
+ while ( ii < m && jj < n ) {
19
+ mat [ ii ++ ] [ jj ++ ] = tmp [ idx ++ ]
20
+ }
21
+ }
22
+
23
+ for ( let i = 1 ; i < m ; i ++ ) {
24
+ let j = 0
25
+ let ii = i
26
+ const tmp = [ ]
27
+ while ( j < n && ii < m ) {
28
+ tmp . push ( mat [ ii ++ ] [ j ++ ] )
29
+ }
30
+ tmp . sort ( ( a , b ) => a - b )
31
+ let idx = 0
32
+ ii = i
33
+ j = 0
34
+ while ( ii < m && j < n ) {
35
+ mat [ ii ++ ] [ j ++ ] = tmp [ idx ++ ]
36
+ }
37
+ }
38
+ return mat
39
+ } ;
You can’t perform that action at this time.
0 commit comments