题解 | #顺时针打印矩阵#

顺时针打印矩阵

http://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a

-- coding:utf-8 --

class Solution:
# matrix类型为二维列表,需要返回列表
output=[]
def printMatrix(self, matrix):
# write code here
return self.print_matrix(matrix,self.output)
def print_matrix(self,matrix,output):
n=len(matrix)#行数
if n!=0:
m=len(matrix[0])#列数
else:
m=0
if m==1 and n!=1:
return self.output+[matrix[i][0] for i in range(n)]
if n==0 or m==0:
return self.output
if n==1:
return self.output+matrix[0]
#输出外层
top=matrix[0]
bottom=matrix[-1][-2::-1]
right=[matrix[i+1][-1] for i in range(n-1)]
left=[matrix[n-2-i][0] for i in range(n-2)]
self.output=self.output+top+right+bottom+left
matrix_core=[]
for i in range(n-2):
#取中间的矩阵块
matrix_core.append(matrix[i+1][1:-1])
#递归
return self.print_matrix(matrix_core,output)

全部评论

相关推荐

美团 客服平台 薪资应该是后端算高的了,我们姑且称为nk了,给3w签字费
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务