当前位置: 首页 > news >正文

【LeetCode】螺旋矩阵

题目

题目链接

请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素,示例如下:
在这里插入图片描述

思路

整体思路为模拟。具体地,可以采用“减而治之”的思想,将整个遍历过程拆分为一次次对每一行和每一列的遍历,每次只考虑一行/一列,每完成一次遍历矩阵整体会收缩一行/一列,此时更新相应的边界坐标即可。
一共有四个方向的遍历顺序,需要分别处理。

复杂度

  • 时间复杂度: O(n)
  • 空间复杂度: O(n)

## 代码

const enum EDirection {right,down,left,up,
}function spiralOrder(matrix: number[][]): number[] {const result: number[] = [];const m = matrix.length;const n = matrix[0].length;// 递归地访问每一行或列const visit = (rowStart: number, rowEnd: number, colStart: number, colEnd: number, direction: EDirection) => {if (rowStart === rowEnd || colStart === colEnd) return;// 枚举每个方向push元素的顺序switch (direction) {case EDirection.right: {for (let i = colStart; i < colEnd; i++) {result.push(matrix[rowStart][i]);}visit(rowStart + 1, rowEnd, colStart, colEnd, EDirection.down);break;}case EDirection.down: {for (let i = rowStart; i < rowEnd; i++) {result.push(matrix[i][colEnd- 1]);}visit(rowStart, rowEnd, colStart, colEnd - 1, EDirection.left);break;}case EDirection.left: {for (let i = colEnd - 1; i >= colStart; i--) {result.push(matrix[rowEnd - 1][i]);}visit(rowStart, rowEnd - 1, colStart, colEnd, EDirection.up);break;}case EDirection.up: {for (let i = rowEnd - 1; i >= rowStart; i--) {result.push(matrix[i][colStart]);}visit(rowStart, rowEnd, colStart + 1, colEnd, EDirection.right);break;}}}// 从原始矩阵开始visit(0, m, 0, n, EDirection.right);return result;
};

相关文章:

  • LeetCode热题100--53.最大子数组和--中等
  • 前端在平常的开发中高度还原ui图的思考规范
  • 婴幼儿托育实训室生活照料流程标准化设计
  • 第三部分:赋予网页灵魂 —— JavaScript(下)
  • 味精(谷氨酸钠)是否健康(马井堂)
  • ESP32通过MQTT协议上传数据至阿里云物联网平台
  • NS-SWIFT微调Qwen3
  • CF4C Registration system(哈希实现)
  • AnimateCC基础教学:漫天繁星-由DeepSeek辅助完成
  • day31 第八章 贪心算法 part05
  • 生活需要一些思考
  • ppt箭头素材图片大全
  • 如何提升自我价值?
  • std::string的底层实现 (详解)
  • [4-06-09].第10节:自动配置- 分析@SpringBootApplication启动类
  • 防爆风扇储能轴流风机风量风压如何保障通风安全?
  • java每日精进 4.29【框架之自动记录日志并插入如数据库流程分析】
  • Lucene 分词工具全解析与对比指南
  • Spring AI在大模型领域的趋势场景题深度解析
  • 网络原理 - 11(HTTP/HTTPS - 2 - 请求)
  • 专访丨青年作家杜梨:以动物的视角去观察这个世界
  • 国家发改委答澎湃:将指导限购城市针对长期摇号家庭和无车家庭等重点群体定向增发购车指标
  • 澎湃思想周报丨数字时代的育儿;凛冬已至好莱坞
  • 新任浙江省委常委、杭州市委书记刘非开展循迹溯源学习调研
  • 伊朗南部港口火势蔓延,部分集装箱再次发生爆炸
  • 马上评丨发钱奖励结婚,支持婚育就该系统性发力