使用递归思想,打印多少就删除多少,最后把矩阵变成[[*]]结束。注意python对于数组为空的判断条件。
用例通过率: 100.00% 运行时间: 313ms 占用内存: 6840KB。
#
#
# @param matrix int整型二维数组 the matrix
# @return int整型一维数组
#
class Solution:
def printMatrix(self, matrix):
ans = []
while True:
# 第0行
for i in matrix[0]:
ans.append(i)
del matrix[0]
if not matrix:
break
# 第-1列
for i in matrix:
ans.append(i[-1])
i.pop()
if not matrix[0]:
break
# 第-1行
templist = []
for i in matrix[-1]:
templist.append(i)
templist.reverse()
ans += templist
del matrix[-1]
if not matrix:
break
# 第1列
templist = []
for i in matrix:
templist.append(i[0])
del i[0]
templist.reverse()
ans += templist
if not matrix[0]:
break
return ans处理过程:
[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]
[[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]
[[5, 6, 7],
[9, 10, 11],
[13, 14, 15]]
[[5, 6, 7],
[9, 10, 11]]
[[6, 7],
[10, 11]]
[[10, 11]]
[[10]]
输出
[1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10]



京公网安备 11010502036488号