class Solution:
def findDiagonalOrder(self, mat: List[List[int]]) -> List[int]:
ans = []
m, n = len(mat), len(mat[0])
for i in range(m + n - 1):
if i % 2:
x = 0 if i < n else i - n + 1
y = i if i < n else n - 1
while x < m and y >= 0:
ans.append(mat[x][y])
x += 1
y -= 1
else:
x = i if i < m else m - 1
y = 0 if i < m else i - m + 1
while x >= 0 and y < n:
ans.append(mat[x][y])
x -= 1
y += 1
return ans
相关文章
- 10-26青少年编程与数学 02-002 Sql Server 数据库应用 03课题、安装SQL Server Management Studio
- 10-26Python编程技巧:字符串排列组合与重复数字查找
- 10-26C++ | Leetcode C++题解之 第508题出现次数最多的子树元素和-题解:
- 10-26二十、Python基础语法(集合(set))
- 10-26Python学习路线:从新手到专家
- 10-26Python | Leetcode Python题解之第498题对角线遍历-题解:
- 10-26Python 快速提取PowerPoint文档中的图片-Python 提取PPT文档中的所有图片
- 10-26Leetcode 最长回文子串
- 10-26AtCoder ABC376A-D题解-比赛链接:ABC
- 10-26基于Django+Python的房屋信息可视化及价格预测系统设计与实现(带文档)