LeetCode54 螺旋矩阵
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
m, n = len(matrix), len(matrix[0])
l, r, t, b, cnt, tar, ans = 0, n - 1, 0, m - 1, 0, m * n, []
while True:
for i in range(l, r + 1): # left -> right
ans.append(matrix[t][i])
cnt = cnt + 1
t = t + 1
if cnt == tar: break
for i in range(t, b + 1): # top -> bottom
ans.append(matrix[i][r])
cnt = cnt + 1
r = r - 1
if cnt == tar: break
for i in range(r, l - 1, -1): # right -> left
ans.append(matrix[b][i])
cnt = cnt + 1
b = b - 1
if cnt == tar: break
for i in range(b, t - 1, -1): # bottom -> top
ans.append(matrix[i][l])
cnt = cnt + 1
l = l + 1
if cnt == tar: break
return ans[:]
分类:
ACM
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2019-08-15 洛谷P1879 [USACO06NOV]玉米田Corn Fields(状压dp)