原文:59. 螺旋矩阵 II(力扣 面试题) - 每天一个JavaScript小知识@Js中文网 · 码农进阶题库

原文地址:https://www.javascriptc.com/interview-tips/zh_cn/leetcode/leetcode-javascript-solution-059/

题目:

难度:Middle

相关话题:数组

给定一个正整数n ,生成一个包含 1 到n 2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3
输出:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

思路:

NO.54差不多,一层一层地处理添加到result中。

/**
 * @来源: Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
 * @介绍:一个致力于帮助开发者用代码改变世界为使命的平台,每天都可以在这里找到技术世界的头条内容
 * @param {number} n
 * @return {number[][]}
 */
var generateMatrix = function(n) {
  let start=0,end=n-1,num=1
  let result=[]
  for(let i=0;i<n;i++){
    result[i]=[]
  }
  while(end>=start){
    let i=start
    while(i<=end)result[start][i++]=num++
    i=start+1
    while(i<=end)result[i++][end]=num++
    i=end-1
    while(i>=start)result[end][i--]=num++
    i=end-1
    while(i>=start+1)result[i--][start]=num++
    start++;end--
  }
  return result
};

扩展阅读: