zoukankan      html  css  js  c++  java
  • leetcode59

     1 class Solution:
     2     def generateMatrix(self, n: int) -> 'List[List[int]]':
     3         res = [[0 for _ in range(n)]for _ in range(n)]
     4         x,y = 0,0
     5         count = 1
     6         while x <= n and y <= n:
     7             for j in range(y,n):
     8                 res[x][j] = count
     9                 count += 1
    10             for i in range(x + 1,n):
    11                 res[i][n - 1] = count
    12                 count += 1
    13             for j in range(n - 2,y - 1,-1):
    14                 res[n - 1][j] = count
    15                 count += 1
    16             for i in range(n - 2,x,-1):
    17                 res[i][y] = count
    18                 count += 1
    19             
    20             x += 1
    21             y += 1
    22             n -= 1
    23         return res

    本题思路同leetcode54一样,二维数组螺旋遍历。

    起点坐标:沿主对角线,从左上向右下移动,即 x += 1, y += 1

    终点坐标:每次缩小n的范围,即 n -= 1

    能完整访问一个"外圈",就可以按照相同的方式,访问"内圈",一层一层的访问。

  • 相关阅读:
    牛人对IC验证的独特理解(转载)
    soc验证扫盲(转载)
    .vimrc
    matchit匹配
    格式化verilog/systemverilog代码插件
    gvim plugin管理
    .alias
    .cshrc
    get_result --perl
    run_regress --perl
  • 原文地址:https://www.cnblogs.com/asenyang/p/12014822.html
Copyright © 2011-2022 走看看