Skip to content

Commit f85141c

Browse files
committedNov 11, 2020
fix build
1 parent fabd917 commit f85141c

File tree

2 files changed

+47
-44
lines changed

2 files changed

+47
-44
lines changed
 

‎src/main/java/com/fishercoder/solutions/_498.java

Lines changed: 31 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -51,50 +51,40 @@ public int[] findDiagonalOrder(int[][] matrix) {
5151
}
5252
}
5353

54-
/*
55-
matrix = new int[][]{
56-
{1, 2, 3},
57-
{4, 5, 6},
58-
{7, 8, 9},
59-
{10, 11, 12},
60-
{13, 14, 15},
61-
};
62-
expected = new int[]{1, 2, 4, 7, 5, 3, 6, 8, 10, 13, 11, 9, 12, 14, 15};
63-
*/
6454
public static class Solutoin2 {
6555
public int[] findDiagonalOrder(int[][] matrix) {
66-
if(matrix == null || matrix.length == 0){
67-
return new int[0];
56+
if (matrix == null || matrix.length == 0) {
57+
return new int[0];
58+
}
59+
List<List<Integer>> diagonals = new ArrayList<>();
60+
int maxRow = matrix.length;
61+
int maxCol = matrix[0].length;
62+
int maxDiagonal = maxRow + maxCol - 1;
63+
for (int diagonalIndex = 0; diagonalIndex < maxDiagonal; diagonalIndex++) {
64+
int curRowIdx = (diagonalIndex < maxCol) ? 0 : (diagonalIndex - maxCol + 1);
65+
int curColIdx = (diagonalIndex < maxCol) ? diagonalIndex : (maxCol - 1);
66+
List<Integer> diagonal = new ArrayList<>();
67+
while (curRowIdx >= 0 && curRowIdx < maxRow && curColIdx >= 0 && curColIdx < maxCol) {
68+
int diagonalElement = matrix[curRowIdx][curColIdx];
69+
diagonal.add(diagonalElement);
70+
curRowIdx++;
71+
curColIdx--;
72+
}
73+
diagonals.add(diagonal);
74+
}
75+
int[] result = new int[maxRow * maxCol];
76+
int resultIdx = 0;
77+
for (int i = 0; i < diagonals.size(); i++) {
78+
List<Integer> diagonal = diagonals.get(i);
79+
if (i % 2 == 0) {
80+
Collections.reverse(diagonal);
81+
}
82+
for (int j = 0; j < diagonal.size(); j++) {
83+
result[resultIdx] = diagonal.get(j);
84+
resultIdx++;
6885
}
69-
List<List<Integer>> diagonals = new ArrayList<>();
70-
int maxRow = matrix.length;
71-
int maxCol = matrix[0].length;
72-
int maxDiagonal = maxRow + maxCol - 1;
73-
for (int diagonalIndex = 0; diagonalIndex < maxDiagonal; diagonalIndex++) {
74-
int curRowIdx = (diagonalIndex < maxCol) ? 0 : (diagonalIndex - maxCol + 1);
75-
int curColIdx = (diagonalIndex < maxCol) ? diagonalIndex : (maxCol - 1);
76-
List<Integer> diagonal = new ArrayList<Integer>();
77-
while (curRowIdx >= 0 && curRowIdx < maxRow && curColIdx >= 0 && curColIdx < maxCol) {
78-
int diagonalElement = matrix[curRowIdx][curColIdx];
79-
diagonal.add(diagonalElement);
80-
curRowIdx++;
81-
curColIdx--;
82-
}
83-
diagonals.add(diagonal);
84-
}
85-
int[] result = new int[maxRow * maxCol];
86-
int resultIdx = 0;
87-
for (int i = 0; i < diagonals.size(); i++) {
88-
List<Integer> diagonal = diagonals.get(i);
89-
if (i % 2 == 0) {
90-
Collections.reverse(diagonal);
91-
}
92-
for (int j = 0; j < diagonal.size(); j++) {
93-
result[resultIdx] = diagonal.get(j);
94-
resultIdx++;
95-
}
96-
}
97-
return result;
86+
}
87+
return result;
9888
}
9989
}
10090

‎src/test/java/com/fishercoder/_498Test.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,26 @@ public void test3() {
5555
expected = new int[]{1, 2, 4, 7, 5, 3, 6, 8, 9};
5656
assertArrayEquals(expected, solutoin2.findDiagonalOrder(matrix));
5757
}
58-
58+
5959
@Test
6060
public void test4() {
6161
matrix = new int[][]{
62-
{2,5},{8,4},{0,-1}
62+
{2, 5}, {8, 4}, {0, -1}
6363
};
64-
expected = new int[]{2,5,8,0,4,-1};
64+
expected = new int[]{2, 5, 8, 0, 4, -1};
65+
assertArrayEquals(expected, solutoin2.findDiagonalOrder(matrix));
66+
}
67+
68+
@Test
69+
public void test5() {
70+
matrix = new int[][]{
71+
{1, 2, 3},
72+
{4, 5, 6},
73+
{7, 8, 9},
74+
{10, 11, 12},
75+
{13, 14, 15},
76+
};
77+
expected = new int[]{1, 2, 4, 7, 5, 3, 6, 8, 10, 13, 11, 9, 12, 14, 15};
6578
assertArrayEquals(expected, solutoin2.findDiagonalOrder(matrix));
6679
}
6780
}

0 commit comments

Comments
 (0)
Please sign in to comment.