从零学算法59

59 .螺旋矩阵 II

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

示例 1:

输入:n = 3

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

示例 2:

输入:n = 1

输出:\[1]

提示:

1 <= n <= 20

  • 按顺序定义顺时针的四个方向 \[0, 1, 1, 0, 0, -1, -1, 0],初始从 (0,-1) 开始,如果走一步后发现出界或遇到已填充的格子就回退一步并更新方向,否则就填值
js 复制代码
  var generateMatrix = function (n) {
      const pos = [[0, 1], [1, 0], [0, -1], [-1, 0]]
      let posIdx = 0
      let i = 0, j = -1
      let genCount = 0
      const ans = new Array(n).fill(0).map(() => new Array(n).fill(0))
      for (let val = 1; val < n * n; val++) {
          // 走一步
          i += pos[posIdx][0]
          j += pos[posIdx][1]
          // 如果出界或遇到已填充的格子就回退一步并更新方向
          if (i < 0 || i >= n || j < 0 || j >= n || ans[i][j] != 0) {
              i -= pos[posIdx][0]
              j -= pos[posIdx][1]
              posIdx = (posIdx + 1) % 4
              continue
          }
          ans[i][j] = val
      }
      return ans
  };
相关推荐
土豆.exe4 小时前
Fastjson2 2.0.53 哈希碰撞 RCE:从原理到三种打法
算法·哈希算法
黄河123长江5 小时前
有限Abel群的结构()
算法
Jerry5 小时前
LeetCode 92. 反转链表 II
算法
骊城英雄6 小时前
Rust从入门到精通-trait
人工智能·算法·rust
可编程芯片开发6 小时前
基于PI控制算法的pwm直流电机控制系统Simulink建模与仿真
算法
怕浪猫6 小时前
2840亿参数只卖白菜价:DeepSeek V4 Flash 正式版上线,Agent 能力暴涨6倍
人工智能·算法
让学习成为一种生活方式7 小时前
苄基异喹啉生物碱糖基转移酶UGT74AN1晶体--Journal of Agricultural and Food Chemistry
人工智能·算法
alphaTao7 小时前
LeetCode 每日一题 2026/7/27-2026/8/2
python·算法·leetcode
2501_926978337 小时前
提示工程的实战报告(二):模型的失败模式与边界行为
人工智能·深度学习·算法
小小晓.7 小时前
C++记:函数
开发语言·c++·算法