题目:
难度: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
};
扩展阅读: