使用递归思想,打印多少就删除多少,最后把矩阵变成[[*]]结束。注意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]