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

leetcode498 对角线遍历

题目

给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。

示例

输入:mat = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,4,7,5,3,6,8,9]
在这里插入图片描述

解析

本题目主要考察的就是模拟法,首先可以计算得出,对角线的个数为m+n-1,在此基础上对于对角线进行遍历(从0开始),则第偶数条为从左下到右上,第奇数条为从右上到左下,根据奇数偶数来确定走什么遍历逻辑。
在遍历的过程中,由于边界值并不固定,每次处理的时候需要判断起点的横纵坐标值:

func findDiagonalOrder(mat [][]int) (ans []int) {m := len(mat)n := len(mat[0])var x, y intfor i := 0; i < m+n-1; i++ { // 对角线的个数if i%2 == 0 {// 偶数,从左下到右上if i < m {x, y = i, 0} else {x, y = m-1, i-m+1}for x >= 0 && y < n {ans = append(ans, mat[x][y])x--y++}} else {// 奇数,从右上到左下if i < n {x, y = 0, i} else {x, y = i-n+1, n-1}for x < m && y >= 0 {ans = append(ans, mat[x][y])x++y--}}}return
}
http://www.lryc.cn/news/376456.html

相关文章:

  • 北京活动会议通常会邀约哪些媒体参会报道?
  • 随心笔记,第六更
  • zustand 状态管理库的使用 结合TS
  • Maven 的生命周期详解
  • 【稳定检索/投稿优惠】2024年生物技术与食品科学国际会议(ICBFS 2024)
  • iOS Category
  • 5.Sentinel入门与使用
  • 上位机图像处理和嵌入式模块部署(h750 mcu和图像处理)
  • 信创服务器操作系统的适配迁移分析
  • 在Ubuntu 20.04上安装和配置MySQL 8:详细指南和远程访问设置
  • Vue43-单文件组件
  • 如何快速使用向量检索服务DashVector?
  • Linux 用户和用户组 创建用户 创建组
  • Character Animator 2024 mac/win版:赋予角色生命,动画更传神
  • 短剧app广告变现模式开发
  • 如何选择适合的编程语言入门?
  • Spring Boot入门教程
  • 芝麻文件重命名 一键批量重命名 支持批量修改图片 文档 文件夹名称
  • docker守护进程配置代理
  • 使用Minikube部署Kubernetes环境
  • 蚂蚁集团:2023年科研投入211.9亿元
  • pikachu靶场之XSS漏洞测试
  • python快速入门之Flask框架
  • 【云原生| K8S系列】Kubernetes Daemonset,全面指南
  • 【Python机器学习实战】 | 基于决策树的药物研究分类预测
  • B端系统的UI框架选择,不要输在了起跑线,如何破?
  • RabbitMQ延迟消息(通过死信交换机实现)
  • Java - 分支结构 - if…else/switch
  • web安全渗透测试十大常规项(一):web渗透测试之XML和XXE外部实体注入
  • 任务3.8.2 利用RDD计算总分与平均分