问题:数组的螺旋遍历,逻辑模拟,主要技巧在于四个方向的控制。
一、螺旋矩阵(leetcode54)
问题:
题目来源:力扣(LeetCode)
难度:中等
分析:
python的zip技巧很妙,zip本身就带方向旋转的特性。
常规思路主要要写对方向。
解决方法:
1:python技巧
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
res = []
while matrix:
res += matrix.pop(0)
matrix = list(zip(*matrix))[::-1]
return res
2:常规思路
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
if not matrix:return []
m,n = len(matrix),len(matrix[0])
x = y = di = 0
dx = [0,1,0,-1]
dy = [1,0,-1,0]
res = []
visited = set()
for i in range(m*n):
res.append(matrix[x