给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。
示例
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,4,7,5,3,6,8,9]
解释:
思路
进行一个迭代,当i+j(下标)
为偶数是,上行;否则,下行,另外,需要特别关注边界点
class Solution:
def findDiagonalOrder(self, matrix: List[List[int]]) -> List[int]:
i=0
j=0
if matrix==[]:
return []
row=len(matrix)
col=len(matrix[0])
queue=[]
#queue.append(matrix[i][j])
while(i<row and j<col):
if (i+j)%2==0:
if i==0 and j!=col-1:
queue.append(matrix[i][j])
j+=1
elif j==col-1:
queue.append(matrix[i][j])
i+=1
else:
queue.append(matrix[i][j])
i-=1
j+=1
else:
if j==0 and i!=row-1:
queue.append(matrix[i][j])
i+=1
elif i==row-1:
queue.append(matrix[i][j])
j+=1
else:
queue.append(matrix[i][j])
i+=1
j-=1
return queue