File tree 1 file changed +44
-0
lines changed
1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments