• 59. 螺旋矩阵 II


    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

    本题思路:先生成一个 n^2的矩阵,定义上下左右四个边界变量

    1.本题最精妙的地方就是 边界的迭代刚好与矩阵中数字填入顺序相同  

      for  i in range(l,r+1):

      for i in range(t,b+1):

      for i in range(r,l-1,-1):

      for i in range(b,t-1,-1):

    2.第二个学到的点就是 range(start,end,step)的用法,在start > end 时,即倒叙打印时,step 应该设为-1

      

    假设 n =4 ,那么每次取值的数为:  4 3 3 2 2 1 1

    class Solution:
        def generateMatrix(self, n: int) -> List[List[int]]:
            maxtrix = [[0 for _ in range(n)] for _ in range(n)]
            l ,r ,t, b = 0 , n-1 , 0 , n-1
            num,tar = 1,n ** 2
            while num <= tar:
                print('1',(l,r,t,b))
                for  i in range(l,r+1):
                    maxtrix[t][i] = num
                    num +=1
                t +=1
                print('2',(l,r,t,b))
                for i in range(t,b+1):
                    maxtrix[i][b] = num
                    num += 1
                r -= 1
                print('3',(l,r,t,b))

                for i in range(r,l-1,-1):
                    maxtrix[b][i] = num
                    num+=1
                b -=1
                print('4',(l,r,t,b))

                for i in range(b,t-1,-1):
                    maxtrix[i][l] = num
                    num+=1
                l +=1
                print('5',(l,r,t,b))

            return maxtrix
            
  • 相关阅读:
    Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    reversePairs
    sort
    分割数组的最小值
    decode string
    276. 栅栏涂色
    133. Clone Graph
    Palindromic string
    爬楼梯
    正则匹配
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12238647.html
Copyright © 2020-2023  润新知