码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] 59. Spiral Matrix II

时间:2020-02-14 10:54:23      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:generate   mat   output   cti   创建   bsp   遍历   blog   targe   

螺旋矩阵二。题意是给一个数字n,请输出一个n x n的矩阵,被从1到n方这n方个数字填满。填满的方式同54题。例子,

Example:

Input: 3
Output:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

这个题跟54题做法几乎一样。也是要通过找到row和column的边界来完成填充的动作。首先用JS创建一个n x n的二维数组并用0填满。遍历的时候,也是按照右 - 下 - 左 - 上的顺序。

时间O(n)

空间O(n^2)

 1 /**
 2  * @param {number} n
 3  * @return {number[][]}
 4  */
 5 var generateMatrix = function (n) {
 6     let res = Array(n).fill(0).map(() => Array(n).fill(0));
 7     let rowBegin = 0;
 8     let rowEnd = n - 1;
 9     let colBegin = 0;
10     let colEnd = n - 1;
11     let num = 1;
12 
13     while (rowBegin <= rowEnd && colBegin <= colEnd) {
14         // right
15         for (let i = colBegin; i <= colEnd; i++) {
16             res[rowBegin][i] = num++;
17         }
18         rowBegin++;
19 
20         // down
21         for (let i = rowBegin; i <= rowEnd; i++) {
22             res[i][colEnd] = num++;
23         }
24         colEnd--;
25 
26         // left
27         for (let i = colEnd; i >= colBegin; i--) {
28             res[rowEnd][i] = num++;
29         }
30         rowEnd--;
31 
32         // up
33         for (let i = rowEnd; i >= rowBegin; i--) {
34             res[i][colBegin] = num++;
35         }
36         colBegin++;
37     }
38     return res;
39 };

 

[LeetCode] 59. Spiral Matrix II

标签:generate   mat   output   cti   创建   bsp   遍历   blog   targe   

原文地址:https://www.cnblogs.com/aaronliu1991/p/12306149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!