题目描述:
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:
[[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]]
则依次打印出数字
[1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]
Python代码实现:
class Solution:
def printMatrix(self , matrix: List[List[int]]) -> List[int]:
# write code here
res=[]
while matrix:
res+=matrix.pop(0) #每次去除矩阵最上面一行的数据,并添加到顺序列表中
matrix=list(zip(*matrix))[::-1] #紧接着逆时针90°旋转矩阵,重复前面的步骤直到矩阵为空
return res
解释:
zip(*matrix) 将矩阵解压
list(_)[::-1] 将 map 对象转为 list 并翻转,先将可迭代对象_包裹成列表,再翻转