美文网首页工作生活
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