顺时针打印矩阵
顺时针打印矩阵
http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a
提供一个不错的思路,python编程
我的思路不是绕着矩阵来打印,而是让矩阵旋转,我每次打印他的第一行就行。
打印一次,去除第一行,然后旋转,最后就可以完成了。
# -*- coding:utf-8 -*- class Solution: # matrix类型为二维列表,需要返回列表 def printMatrix(self, matrix): # write code here # 旋转矩阵 def rotate(mat): lenx = len(mat[0]) leny = len(mat) newmat = [[0] * leny for i in range(lenx)] for i in range(len(newmat)): newmat[i] = [mat[y][lenx - i - 1] for y in range(leny)] return newmat # 获取第一行,并且旋转矩阵 def getline(mat): res = mat[0] newmat = [] if len(mat) > 1: newmat = rotate(mat[1:]) return res,newmat result = [] newm = [] result, newm = getline(matrix) while newm != []: res,newm = getline(newm) result.extend(res) return result