题解 | #螺旋矩阵#
螺旋矩阵
https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param matrix int整型二维数组
# @return int整型一维数组
class Solution:
def spiralOrder(self , matrix: list[list[int]]) -> list[int]:
if not matrix:
return matrix
if len(matrix[0]) == 1: # 只有一列
res = []
for i in range(len(matrix)):
res.append(matrix[i][0])
return res
res = matrix[0]
i = len(matrix)-1 # 行-1
j = len(matrix[0])-1 # 列-1
m, n = 0, len(matrix[0])-1 # 第一行最后一个
while i > 0 and j >= 0:
# 下左上右
for _ in range(i):
m += 1
res.append(matrix[m][n])
for _ in range(j):
n -= 1
res.append(matrix[m][n])
i -= 1
j -= 1
if i == 0 or j < 0:
break
for _ in range(i):
m -= 1
res.append(matrix[m][n])
for _ in range(j):
n += 1
res.append(matrix[m][n])
i -= 1
j -= 1
return res

字节跳动公司福利 1315人发布

