leetcode-59 螺旋矩阵,控制输出及找规律

leetcode-59题

leetcode-59题 参考代码随想录的中的解题思路
class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        x,y=0,0
        loop=n//2
        temp=1
        matrix = [[0] * n for _ in range(n)]
        if n==1:
            matrix[0][0]=1
            return matrix
        num=1
        while loop!=0:
            loop-=1
            for i in range(x,n-temp+1):#上行
                matrix[x][i]=num
                num+=1
            for j in range(y+1,n-temp+1):#右列
                matrix[j][n-temp]=num
                num+=1
            for i in range(n-temp-1,x-1,-1):#下行
                matrix[n-temp][i]=num
                num+=1
            for j in range(n-temp-1,y,-1):#左列
                matrix[j][y]=num
                num+=1
            if n%2==1:
                matrix[n//2][n//2]=num
            temp+=1
            x+=1
            y+=1
        return matrix

主要的思想是找规律

比如

n 为1,2,3,4,5,6,7
1     1 2    1   2  3    1    2     3     4     
      3 4    4   5  6    5    6     7     8
             7   8  9    9    10    11   12
                         13   14    15   16    

  

posted @ 2022-06-07 16:28  someonezero  阅读(29)  评论(0编辑  收藏  举报