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

498. 对角线遍历

目录

题目链接:

题目:

解题思路:

代码:


题目链接:

498. 对角线遍历 - 力扣(LeetCode)

题目:

解题思路:

解题思路是观察对角线方向交替变化的特点:偶数索引对角线向上遍历(m--,n++),奇数索引向下遍历(m++,n--)。当超出边界时调整指针位置。代码使用双指针m和n遍历矩阵,根据当前方向处理边界情况,将元素按顺序存入结果数组。时间复杂度O(M*N),空间复杂度O(1)。关键在于正确处理方向切换时的指针越界调整。

代码:

class Solution {public static int[] findDiagonalOrder(int[][] matrix) {if (matrix.length == 0) {return new int[0];}int rowLength = matrix.length;int columnLength = matrix[0].length;int[] answer = new int[rowLength * columnLength];int count = rowLength + columnLength - 1;int m = 0;int n = 0;int answerIndex = 0;for (int i = 0; i < count; i++) {if (i % 2 == 0) {while (m >= 0 && n < columnLength) {answer[answerIndex] = matrix[m][n];answerIndex++;m--;n++;}if (n < columnLength) {m++;} else {m = m + 2;n--;}} else {while (m < rowLength && n >= 0) {answer[answerIndex] = matrix[m][n];answerIndex++;m++;n--;}if (m < rowLength) {n++;}else{m--;n=n+2;}}}return answer;}}


总结:
该题目要求在二维矩阵中按对角线顺序遍历元素。解题思路是观察对角线方向交替变化的特点:偶数索引对角线向上遍历(m--,n++),奇数索引向下遍历(m++,n--)。当超出边界时调整指针位置。代码使用双指针m和n遍历矩阵,根据当前方向处理边界情况,将元素按顺序存入结果数组。时间复杂度O(M*N),空间复杂度O(1)。关键在于正确处理方向切换时的指针越界调整。

http://www.dtcms.com/a/315138.html

相关文章:

  • JUCE VST AI 开源
  • 2025最好的Dify入门到精通教程(上)
  • 微服务的编程测评系统10-竞赛删除发布-用户管理-登录注册
  • 县级融媒体中心备份与恢复策略(精简版3-2-1架构)
  • 【网络安全】不安全的反序列化漏洞
  • P1550 [USACO08OCT] Watering Hole G
  • 【达梦MPP(带主备)集群搭建】
  • python包管理器uv踩坑
  • Golang中的`io.Copy()`使用场景
  • Java 的 APT(Annotation Processing Tool)机制详解
  • 【MyBatis-Plus笔记】MyBatis-Plus详解
  • JuiceFS on Windows: 首个 Beta 版的探索与优化之路
  • 【多智能体cooragent】CoorAgent 系统中 5 个核心系统组件分析
  • 【笔记】ROS1|3 Turtlebot3汉堡Burger建SLAM地图并导航【旧文转载】
  • 数学 理论
  • 基于FAISS和Ollama的法律智能对话系统开发实录-【大模型应用班-第5课 RAG技术与应用学习笔记】
  • Fastapi文件上传那些事?
  • 浅谈 Python 中的 next() 函数 —— 迭代器的驱动引擎
  • MCP进阶:工业协议与AI智能体的融合革命
  • Neat Converter电子书格式转换工具,支持ePub、Azw3、Mobi、Doc、PDF、TXT相互转换,完全免费
  • 龙虎榜——20250804
  • numpy数组拼接 - np.concatenate
  • VPS云服务器Linux性能分析与瓶颈解决方案设计
  • java获取文件编码格式,然后读取此文件,适用于任何格式的文件。
  • 面试题:怎么理解3 次握手与 4 次挥手:TCP 连接的建立与终止
  • 【Unity3D】Shader圆形弧度裁剪
  • 思途Spring学习 0804
  • Unity 实现手机端和电脑项目在局域网内通信
  • 【推荐100个unity插件】Unity 的 Hot Reload 热重载实现,加快unity程序编译速度——FastScriptReload插件
  • MySQL InnoDB 表数据结构存储方式详解