zoukankan      html  css  js  c++  java
  • 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
            
  • 相关阅读:
    [Selenium]Eclipse hangs at 57% in debug mode with TestNG tests
    [Selenium] CSS3 选择器
    [Selenium]如何实现上传本地文件
    [Selenium]显式等待 Explicit wait & 隐式等待 Implicit wait
    [Selenium]中使用css选择器进行元素定位
    [Selenium]验证点了某个Button之后无反应
    7. Debug on local machine
    6. Manage the driver for browser and the script for Hub
    4. Configure maven in Spring Tool Suite
    3. Install Spring-Tool-Suite & TestNG
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12238647.html
Copyright © 2011-2022 走看看