Skip to content

Commit 62a60bb

Browse files
committed
finish 59
1 parent 71dfea4 commit 62a60bb

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

59. Spiral Matrix II.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* 59. Spiral Matrix II
3+
*
4+
* Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
5+
*
6+
* Example:
7+
*
8+
* Input: 3
9+
* Output:
10+
* [
11+
* [ 1, 2, 3 ],
12+
* [ 8, 9, 4 ],
13+
* [ 7, 6, 5 ]
14+
* ]
15+
*/
16+
17+
/**
18+
* @param {number} n
19+
* @return {number[][]}
20+
*/
21+
var generateMatrix = function(n) {
22+
var x1 = 0;
23+
var x2 = n - 1;
24+
var y1 = 0;
25+
var y2 = n - 1;
26+
var i = 0;
27+
var res = Array(n).fill(0).map(_ => Array(n));
28+
while (x1 <= x2 && y1 <= y2) {
29+
for (var x = x1; x <= x2; x++) res[y1][x] = ++i;
30+
for (var y = y1 + 1; y <= y2; y++) res[y][x2] = ++i;
31+
for (var x = x2 - 1; x > x1; x--) res[y2][x] = ++i;
32+
for (var y = y2; y > y1; y--) res[y][x1] = ++i;
33+
x1++;
34+
x2--;
35+
y1++;
36+
y2--;
37+
}
38+
return res;
39+
};
40+
41+
// 绕圈,1 => 2 => 3 => 4 => 5
42+
// 111
43+
// 452
44+
// 432

0 commit comments

Comments
 (0)