题解 | #螺旋矩阵#
螺旋矩阵
https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param matrix int整型二维数组
# @return int整型一维数组
# 简单的模拟
class Solution:
def spiralOrder(self , matrix: List[List[int]]) -> List[int]:
if matrix is None:
return None
res = []
if len(matrix) == 0 or len(matrix[0]) == 0:
return res
else:
count = len(matrix) * len(matrix[0])
up = 0
down = len(matrix)-1
right = len(matrix[0])-1
left = 0
i = 0
print(matrix)
print(count)
while count: # and left <= right and up <= down:
while left <= i <= right:
#if up < len(matrix) and i < len(matrix[0]):
# res.append(matrix[up][i])
res.append(matrix[up][i])
i += 1
up += 1
if up > down:
break
i = up
while up <= i and i <= down:
res.append(matrix[i][right])
i += 1
right -= 1
if left > right:
break
i = right
while left <= i:
res.append(matrix[down][i])
i -= 1
down -= 1
if up > down:
break
i = down
while up <= i:
res.append(matrix[i][left])
i -= 1
left += 1
if left > right:
break
i = left
count -= 1
return res
