美文网首页工作生活
2019-07-02剑指 顺时针打印矩阵

2019-07-02剑指 顺时针打印矩阵

作者: mztkenan | 来源:发表于2019-07-02 20:16 被阅读0次

与书上想法不一样的是,对已访问过的数字进行标记。
卡住的地方在于第一个数字,先加入还是先++
30min

class Solution:
    # matrix类型为二维列表,需要返回列表
    def printMatrix(self, matrix):
        # write code here
        res=[]
        cnt=0
        if matrix and matrix[0]:
            row = len(matrix)
            column = len(matrix[0])
            num=row*column
            res.append(matrix[0][0])
            cnt+=1
            matrix[0][0]=None
        x,y=0,0
        while(cnt<num):
            while(y+1<column and matrix[x][y+1]!=None):
                y+=1
                res.append(matrix[x][y])
                matrix[x][y]=None
                cnt+=1
            while(x+1<row and matrix[x+1][y]!=None):
                x+=1
                res.append(matrix[x][y])
                matrix[x][y]=None
                cnt+=1

            while(y-1>=0 and matrix[x][y-1]!=None):
                y-=1
                res.append(matrix[x][y])
                matrix[x][y]=None
                cnt+=1

            while(x-1>=0 and matrix[x-1][y]!=None):
                x-=1
                res.append(matrix[x][y])
                matrix[x][y]=None
                cnt+=1
        return res

相关文章

网友评论

    本文标题:2019-07-02剑指 顺时针打印矩阵

    本文链接:https://www.haomeiwen.com/subject/xkzthctx.html