Skip to content

Commit 17c50af

Browse files
authored
feat: add java solution to lc problem: NO.1329. Sort the Matrix Diagonally (doocs#548)
1 parent fef66df commit 17c50af

File tree

3 files changed

+69
-2
lines changed

3 files changed

+69
-2
lines changed

solution/1300-1399/1329.Sort the Matrix Diagonally/README.md

+23-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,29 @@
5959
<!-- 这里可写当前语言的特殊实现逻辑 -->
6060

6161
```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+
}
6385
```
6486

6587
### **...**

solution/1300-1399/1329.Sort the Matrix Diagonally/README_EN.md

+23-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,29 @@
4747
### **Java**
4848

4949
```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+
}
5173
```
5274

5375
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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+
}

0 commit comments

Comments
 (0)