**题目:**输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.
大神思路点拨:
分为四部分,矩阵的上边,右边,下边,左边,计算之后就减去
class Solution:
# matrix类型为二维列表,需要返回列表
def printMatrix(self, matrix):
# write code her
res = []
while matrix:
#上边
if matrix:
res += matrix.pop(0)
# matrix=[[1],[2],[3]] ,上一步之后变为[[2],[3]],
#右边
if matrix and matrix[0]:
for i in matrix:
res += [i.pop()]
#matrix内元素pop,变为matrix[[],[]],matrix不空!!,matrix[0]才为空!!
#上边的过程中不断减去matrix[[]]
if matrix and matrix[0]:
res += matrix.pop()[::-1] #下边
#左边
for i in matrix[::-1]:
res+= [i.pop(0)]
return res