跳到主要内容

59.螺旋矩阵II

链接:59.螺旋矩阵II
难度:Medium
标签:数组、矩阵、模拟
简介:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

题解 1 - typescript

  • 编辑时间:2021-03-16
  • 执行用时:100ms
  • 内存消耗:39.4MB
  • 编程语言:typescript
  • 解法介绍:旋转赋值。
function generateMatrix(n: number): number[][] {
const ans: number[][] = new Array(n).fill(0).map(_ => new Array(n));
let num = 1;
dfs(0, n - 1);
return ans;
function dfs(startI: number, endI: number): void {
if (startI > endI || startI > endI) return;
for (let i = startI; i <= endI; i++) ans[startI][i] = num++;
for (let i = startI + 1; i <= endI; i++) ans[i][endI] = num++;
for (let i = endI - 1; i >= startI; i--) ans[endI][i] = num++;
for (let i = endI - 1; i >= startI + 1; i--) ans[i][startI] = num++;
dfs(startI + 1, endI - 1);
}
}