这题难度中等,记录下思路

第一个会超时,

第二个:思想是按斜对角线行进行右下左上交替遍历,

 def traverse(matrix):
n=len(matrix)-1
m=len(matrix[0])-1
result=[]
for i in range(m+n+1):
if(i % 2 == 0):
for j in range(i, -1, -1):
x=j
y=i-x
if x <= n and y <= m:
result.append(matrix[x][y])
# elif y > m:
# break
else:
continue
else:
for j in range(i, -1, -1):
y=j
x=i-y
if x <= n and y <= m:
result.append(matrix[x][y])
# elif x > n:
# break
else:
continue
return result if __name__ == '__main__':
ma=[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
print(traverse(ma))

11

 def diagonial(matrix):
m=len(matrix)
n=len(matrix[0])
#思想是按斜对角线行进行遍历
#遍历的方向右下,左上交替进行
line=0
res=[]
tem=[]
is_sure=True
#对每一行进行循环 斜对角线有m+n-1条
while line<(m+n-1):
#设置起点
if(line<m):
x=line
y=0
else:
x=m-1
y=line-m-1
#每行循环几次
#因为都是从右上开始,所以设置条件x>0,y<n
while x>=0 and y <n:
# 存储斜行的元素
tem.append(matrix[x][y])
x-=1
y+=1
#如果是左下开始,则反向添加
if(is_sure):
tem.reverse()
for num in tem:
res.append(num)
line+=1
return res if __name__ == '__main__':
matrix=[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
print(diagonial(matrix))

python(leetcode)498. 对角线遍历的更多相关文章

  1. Java实现 LeetCode 498 对角线遍历

    498. 对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ 1, 2, 3 ], [ ...

  2. Leetcode 498.对角线遍历

    对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, ...

  3. LeetCode:对角线遍历【498】

    LeetCode:对角线遍历[498] 题目描述 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ ...

  4. 498. (leetcode)对角线遍历

    498. 对角线遍历 根据题目的图像看,主要有两种走法,第一种是向右上(顺时针方向),第二种是向左下(逆时针)走 我们设 x ,y初始为0,分别对应横纵坐标 现在分析右上(0,2) 为例:(注意右上的 ...

  5. Leetcode 498:对角线遍历Diagonal Traverse(python3、java)

    对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. Given a matrix of M x N elemen ...

  6. [LeetCode] Diagonal Traverse 对角线遍历

    Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...

  7. [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse

    Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...

  8. Python os.walk文件遍历用法【转】

    python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ...

  9. python实现dict版图遍历

    python实现dict版图遍历的示例. 代码: #_*_coding:utf_8_import sysimport osclass Graph(): def __init__(self, V, E) ...

随机推荐

  1. pyhton的安装,环境变量的设置,pycharm的安装下载,中文汉化和字体的设置

    1.下载pycharm https://www.7down.com/soft/336988.html 1.pycharm的汉化下载汉化包:resources_cn.jar    放到pycharm的安 ...

  2. IDEA新建servlet时出现的错误

    未注入Tomcat里lib文件下的jar 这样即可

  3. C++编译器优化技术:RVO、NRVO和复制省略

    现代编译器缺省会使用RVO(return value optimization,返回值优化).NRVO(named return value optimization.命名返回值优化)和复制省略(Co ...

  4. [译]Vulkan教程(17)帧缓存

    [译]Vulkan教程(17)帧缓存 Framebuffers 帧缓存 We've talked a lot about framebuffers in the past few chapters a ...

  5. Vue 路由导航解析流程

    Vue Router完整的导航解析流程

  6. IT兄弟连 HTML5教程 CSS3揭秘 CSS选择器2

    4  结构性伪类选择器 在学习结构性伪类选择器之前,先了解两个概念:伪类选择器和伪元素选择器.伪类选择器是CSS中已经定义好的选择器,不能随便命名.常用的伪类选择器是使用在a元素上的几种,如a:lin ...

  7. SpringBoot源码学习系列之@PropertySource不支持yaml读取原因

    然后,为什么@PropertySource注解默认不支持?可以简单跟一下源码 @PropertySource源码: 根据注释,默认使用DefaultPropertySourceFactory类作为资源 ...

  8. Windows下使用virtualenv创建虚拟环境

    操作系统 : windowns10_x64Python版本:3.6.8virtualenv版本:16.7.7virtualenvwrapper版本:1.2.5 方式一:直接使用virtualenv 1 ...

  9. Jenkinsfile构建docker镜像

    pipeline { agent any stages { stage('preparation') { steps { echo "workspace: ${WORKSPACE}" ...

  10. C++ 词汇表

    C++词汇表 A abort()                       特殊函数 如果一个函数抛出异常,但在通往异常函数的调用链中找不到与之匹配的catch,则该程序通常以此函数调用终止 abs ...