【python】对角线遍历

python系列文章目录

【python】基于cv2提取图片上的文本内容
【python】简单作图
【python】数组字符串等实用
【python】sort与sorted排序使用


【python】对角线遍历

  • python系列文章目录
  • 说明
  • 1.分析
  • 2.注意事项
    • 2.1 遍历
    • 2.2 区间
    • 2.3 顺序
  • 3.代码实现


说明

给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。
输入:mat = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,4,7,5,3,6,8,9]
示例 1:
在这里插入图片描述


1.分析

对于 3 x 3 的矩阵,矩阵的坐标如下所示:
[ 00 01 02 10 11 12 20 21 22 ] \left[\begin{array}{c|c|c} 00 & 01 & 02\\ \hline 10 & 11 & 12\\ \hline 20 & 21 & 22\\ \end{array}\right] 001020011121021222
需要输出的顺序是斜对角线的形式
第一斜对角线,角标和为0,如果规定从左下到右上为正序,这一条为正序。[[0,0]]
[ 00 ] \left[\begin{array}{c|c|c} 00 & & \\ \hline & & \\ \hline & & \\ \end{array}\right] 00
第二斜对角线,角标和为1,逆序。[[0,1], [0,1]]
[ 01 10 ] \left[\begin{array}{c|c|c} & 01 & \\ \hline 10 & & \\ \hline & & \\ \end{array}\right] 1001
第三斜对角线,角标和为2,正序。[[2,0], [1,1], [0,2]]
[ 02 11 20 ] \left[\begin{array}{c|c|c} & & 02\\ \hline & 11 & \\ \hline 20 & & \\ \end{array}\right] 201102

第四斜对角线,角标和为3,逆序。[[1,2], [2,1]]
[ 12 21 ] \left[\begin{array}{c|c|c} & & \\ \hline & & 12\\ \hline & 21 & \\ \end{array}\right] 2112

第五斜对角线,角标和为4,正序。[[2,2]]
[ 22 ] \left[\begin{array}{c|c|c} & & \\ \hline & & \\ \hline & &22 \\ \end{array}\right] 22

2.注意事项

2.1 遍历

遍历的和为 2+2=4,即 m + n - 2

2.2 区间

横坐标的最大值不能超越2,即m-1,纵坐标的最大值不能超越2,即n-1

2.3 顺序

正序tmp与逆序tmp[::-1]要有标记,

3.代码实现

class Solution:def findDiagonalOrder(self, mat: List[List[int]]) -> List[int]:#横坐标m = len(mat)#纵坐标n = len(mat[0])result = []#顺序标记count = 0for i in range(m+n-1):tmp = []#避免横坐标溢出left = min(m-1, count)right = i - left#每一条斜对角线一个whilewhile right < n and left > -1:tmp.append(mat[left][right])left = left - 1right = right + 1#如果是奇数斜对角线,则逆序if count % 2 == 1:tmp = tmp[::-1]#标记count = count + 1result.extend(tmp)return result

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java方法重载

重载 概念 重载就是在一个类中&#xff0c;有相同的函数名&#xff0c;但形参不同的函数 规则 方法名称必须相同参数列表必须不同&#xff08;个数不同、或类型不同、参数排列顺序不同等&#xff09;方法的返回值类型可以相同也可以不同仅仅返回类型不同不足以成为方法的重载 实…

MySQl基础入门③

上一遍内容 接下来我们都使用navicat软件来操作数据了。 1.新建数据库 先创建我门自己的一个数据库 鼠标右键点击bendi那个绿色海豚的图标&#xff0c;然后选择新建数据库。 数据库名按自己喜好的填&#xff0c;不要写中文&#xff0c; 在 MySQL 8.0 中&#xff0c;最优的字…

【MATLAB】语音信号识别与处理:卷积滑动平均滤波算法去噪及谱相减算法呈现频谱

1 基本定义 卷积滑动平均滤波算法是一种基于卷积操作的滤波方法&#xff0c;它通过对信号进行卷积运算来计算移动平均值&#xff0c;以消除噪声。该算法的主要思想是将滤波窗口的加权系数定义为一个卷积核&#xff0c;对信号进行卷积运算来得到平滑后的信号。这样可以有效地去…

Java基于微信小程序的高校讲座预约系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

项目打包至私有maven仓库

文章目录 step1: 下载源项目到本地&#xff0c;确保编译无问题step2: maven配置文件settings.xmlstep 3: 项目的pom.xml配置要发布的仓库地址step 4: 执行deploy命令即可将项目打包至远程仓库 step1: 下载源项目到本地&#xff0c;确保编译无问题 step2: maven配置文件setting…

Vector Search和专用Search Nodes:现已正式发布

我们非常高兴地推出了 Atlas Vector Search 和 Search Nodes 的正式发布版本 (GA)&#xff0c;为 Atlas 平台增添了更多价值。 自从在公开预览版中发布 Atlas Vector Search 和带有 Search Nodes 的专用基础架构以来&#xff0c;我们注意到&#xff0c;对于使用向量优化搜索节…

信息安全、网络安全以及数据安全三者之间的区别

随着信息技术的飞速发展&#xff0c;网络安全、信息安全、数据安全等词汇在平时出现的频率越来越高&#xff0c;尤其是数据安全&#xff0c;是大家都关心的一个重要话题。事实上&#xff0c;有很多人对网络安全、信息安全、数据安全的概念是区分不清的&#xff0c;下面由我帮大…

C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码

1 回文串 “回文串”是一个正读和反读都一样的字符串&#xff0c;初始化标志flagtrue&#xff0c;比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串&#xff0c;如果该字符串的每个子字符串都是回文的&#xff0c;那么该字符串的分区就是回文分区。…

DataLoader

import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter# 准备的测试数据集 数据放在了CIFAR10文件夹下test_data torchvision.datasets.CIFAR10("./CIFAR10",trainFalse, transformtorchvision.transfor…

Qt入门(一)Qt概述

Qt是什么&#xff1f; Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库&#xff0c;还包括诸多配套的开发工具如QtCreater&#xff0c;GUI Designer。Qt本身是由C开发的&#xff0c;但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术&#xff0c;最重要的是…

PDF控件Spire.PDF for .NET【安全】演示:加密 PDF 文档

加密PDF是人们常用的保护PDF的方法。无论对于公司还是个人&#xff0c;使用PDF加密来设置一些限制都是必不可少的。为了使PDF文档可供未经授权的用户阅读但无法修改&#xff0c;加密的PDF文档需要两个密码&#xff1a;所有者密码和用户密码。本节将特别介绍一种通过 Spire.PDF …

从mysql 数据库表导入数据到elasticSearch的几种方式

从MySQL数据库导入数据到Elasticsearch有几种方式&#xff0c;主要包括以下几种&#xff1a; 1. 使用Logstash&#xff1a; Logstash是一个开源的数据收集引擎&#xff0c;可以用来从不同的数据源导入数据到Elasticsearch。它具有强大的数据处理能力和插件生态系统&…

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

Sentinel 面试题及答案整理,最新面试题

Sentinel的流量控制规则有哪些&#xff0c;各自的作用是什么&#xff1f; Sentinel的流量控制规则主要包括以下几种&#xff1a; 1、QPS&#xff08;每秒查询量&#xff09;限流&#xff1a; 限制资源每秒的请求次数&#xff0c;适用于控制高频访问。 2、线程数限流&#xf…

微服务之商城系统

一、商城系统建立之前的一些配置 1、nacos Nacos是一个功能丰富的开源平台&#xff0c;用于配置管理、服务发现和注册、健康检查等&#xff0c;帮助构建和管理分布式系统。 在linux上安装nacos容器的命令&#xff1a; docker run --name nacos-standalone -e MODEstandalone …

Fabric V2.5 通用溯源系统——应用前端部分设计及简易二次开发

本节对Fabric V2.5 通用溯源系统的前端部分做一个简单的介绍。包括目录结构、文件作用简述、用户注册登录实现、农产品信息上链溯源实现的介绍。同时提供了简易二次开发的教程(面向需要在短时间内二次开发),将本项目修改为商品溯源项目,仅修改前端部分。本节内容需要订阅《…

Python报错ModuleNotFoundError: No module named ‘numpy‘

原因&#xff1a;缺少“numpy” 进入python安装路径&#xff0c;script路径内 在路径下启动终端 01.更新numpy python -m pip install --upgrade pip 02.安装 pip install numpy 03.运行python python 04.导入包 from numpy import * 问题已解决。

凌鲨客户端架构

客户端架构 客户端使用了tauri作为主框架&#xff0c;通过rust和内置应用(sidecar)为前端界面提供额外能力。 内置应用(sidecar) 应用 相关项目 说明 devc 开发环境容器工具 gitspy 本地git仓库管理工具 grpcutil grpc调用工具 mongo 通讯协议 mongo协议转发工具 …

MATLAB知识点:循环语句的经典练习题:二分搜索

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自​第4章&#xff1a;MATLAB程序流程控制 这个例题我们…

SSD LDPC纠错算法的重要性

固态硬盘&#xff08;Solid State Drives, SSD&#xff09;作为计算机行业中最具革命性的技术之一&#xff0c;凭借其更快的读写速度、增强的耐用性和能效&#xff0c;已经成为大多数用户的首选存储方案。然而&#xff0c;如同任何其他技术一样&#xff0c;SSD也面临自身的挑战…