标签: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