File tree 3 files changed +69
-2
lines changed
solution/1300-1399/1329.Sort the Matrix Diagonally
3 files changed +69
-2
lines changed Original file line number Diff line number Diff line change 59
59
<!-- 这里可写当前语言的特殊实现逻辑 -->
60
60
61
61
``` java
62
-
62
+ class Solution {
63
+ public int [][] diagonalSort (int [][] mat ) {
64
+ for (int i = 0 ; i < mat. length; i++ ) {
65
+ handler(mat, i, 0 );
66
+ }
67
+ for (int i = 0 ; i < mat[0 ]. length; i++ ) {
68
+ handler(mat, 0 , i);
69
+ }
70
+ return mat;
71
+ }
72
+
73
+ public void handler (int [][] mat , int i , int j ) {
74
+ for (; i < mat. length && j < mat[0 ]. length; i++ , j++ ) {
75
+ for (int k = i + 1 , p = j + 1 ; k < mat. length && p < mat[0 ]. length; k++ , p++ ) {
76
+ if (mat[k][p] < mat[i][j]){
77
+ int temp = mat[k][p];
78
+ mat[k][p] = mat[i][j];
79
+ mat[i][j] = temp;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
63
85
```
64
86
65
87
### ** ...**
Original file line number Diff line number Diff line change 47
47
### ** Java**
48
48
49
49
``` java
50
-
50
+ class Solution {
51
+ public int [][] diagonalSort (int [][] mat ) {
52
+ for (int i = 0 ; i < mat. length; i++ ) {
53
+ handler(mat, i, 0 );
54
+ }
55
+ for (int i = 0 ; i < mat[0 ]. length; i++ ) {
56
+ handler(mat, 0 , i);
57
+ }
58
+ return mat;
59
+ }
60
+
61
+ public void handler (int [][] mat , int i , int j ) {
62
+ for (; i < mat. length && j < mat[0 ]. length; i++ , j++ ) {
63
+ for (int k = i + 1 , p = j + 1 ; k < mat. length && p < mat[0 ]. length; k++ , p++ ) {
64
+ if (mat[k][p] < mat[i][j]){
65
+ int temp = mat[k][p];
66
+ mat[k][p] = mat[i][j];
67
+ mat[i][j] = temp;
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
51
73
```
52
74
53
75
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int [][] diagonalSort (int [][] mat ) {
3
+ for (int i = 0 ; i < mat .length ; i ++) {
4
+ handler (mat , i , 0 );
5
+ }
6
+ for (int i = 0 ; i < mat [0 ].length ; i ++) {
7
+ handler (mat , 0 , i );
8
+ }
9
+ return mat ;
10
+ }
11
+
12
+ public void handler (int [][] mat , int i , int j ) {
13
+ for (; i < mat .length && j < mat [0 ].length ; i ++, j ++) {
14
+ for (int k = i + 1 , p = j + 1 ; k < mat .length && p < mat [0 ].length ; k ++, p ++) {
15
+ if (mat [k ][p ] < mat [i ][j ]){
16
+ int temp = mat [k ][p ];
17
+ mat [k ][p ] = mat [i ][j ];
18
+ mat [i ][j ] = temp ;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
You can’t perform that action at this time.
0 commit comments