Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 001977e

Browse files
solves spiral matrix ii
1 parent 9d65c79 commit 001977e

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
| 56 | [Merge Intervals](https://leetcode.com/problems/merge-intervals) | [![Java](assets/java.png)](src/MergeIntervals.java) | |
5858
| 57 | [Insert Interval](https://leetcode.com/problems/insert-interval) | [![Java](assets/java.png)](src/InsertInterval.java) | |
5959
| 58 | [Length of Last Word](https://leetcode.com/problems/length-of-last-word) | [![Java](assets/java.png)](src/LengthOfLastWord.java) [![Python](assets/python.png)](python/length_of_last_word.py) | |
60+
| 59 | [Spiral Matrix II](https://leetcode.com/problems/spiral-matrix-ii) | [![Java](assets/java.png)](src/SpiralMatrixII.java) | |
6061
| 66 | [Plus One](https://leetcode.com/problems/plus-one) | [![Java](assets/java.png)](src/PlusOne.java) [![Python](assets/python.png)](python/plus_one.py) | |
6162
| 67 | [Add Binary](https://leetcode.com/problems/add-binary) | [![Java](assets/java.png)](src/AddBinary.java) [![Python](assets/python.png)](python/add_binary.py) | |
6263
| 69 | [Sqrt(x)](https://leetcode.com/problems/sqrtx) | [![Java](assets/java.png)](src/Sqrtx.java) [![Python](assets/python.png)](python/sqrt.py) | |

src/SpiralMatrixII.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// https://leetcode.com/problems/spiral-matrix-ii
2+
// T: O(n^2)
3+
// S: O(n^2)
4+
5+
public class SpiralMatrixII {
6+
public int[][] generateMatrix(int n) {
7+
final int[][] matrix = new int[n][n];
8+
final int rows = matrix.length, columns = matrix[0].length, elements = rows * columns;
9+
10+
for (int i = 0, top = 0, bottom = rows, left = 0, right = columns, k = 1 ; ; ) {
11+
for (int row = top, column = left ; column < right ; column++, i++) {
12+
matrix[row][column] = k++;
13+
}
14+
top++;
15+
if (i == elements) break;
16+
for (int row = top, column = right - 1 ; row < bottom ; row++, i++) {
17+
matrix[row][column] = k++;
18+
}
19+
right--;
20+
if (i == elements) break;
21+
for (int row = bottom - 1, column = right - 1 ; column >= left ; column--, i++) {
22+
matrix[row][column] = k++;
23+
}
24+
bottom--;
25+
if (i == elements) break;
26+
for (int row = bottom - 1, column = left ; row >= top ; row--, i++) {
27+
matrix[row][column] = k++;
28+
}
29+
left++;
30+
if (i == elements) break;
31+
}
32+
return matrix;
33+
}
34+
}

0 commit comments

Comments
 (0)