对角线遍历

匿名 (未验证) 提交于 2019-12-02 23:32:01

题目:给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。

说明:

输入: [  [ 1, 2, 3 ],  [ 4, 5, 6 ],  [ 7, 8, 9 ] ]  输出:  [1,2,4,7,5,3,6,8,9] 

所以,即先创建空列表,然后append迭代添加即可。 还是自己多画图找规律。

class Solution:     def findDiagonalOrder(self, matrix: List[List[int]]) -> List[int]:         if(matrix==[]):             return []         r=0         c=0         row=len(matrix)         col=len(matrix[0])         a=row*col         res=[]         for i in range(a):             res.append(matrix[r][c])             if((r+c)%2==0):                 if(c==col-1):                     r=r+1                 elif(r==0):                     c=c+1                 else:                     r=r-1                     c=c+1             else:                 if(r==row-1):                     c=c+1                 elif(c==0):                     r=r+1                 else:                     r=r+1                     c=c-1         return res

这里,编写时出了俩错,

第一个:r=0,c=0 不能这么写,应该改为r,c=0,0

第二个:python里面没有自增,自减;因为自增自减改变了对象本身,而Python的模型规定,数值对象是不可改变的。

第三个:if elif要对齐才表示一个嵌套内

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!