zoukankan      html  css  js  c++  java
  • leetcode-Spiral Matrix II 螺旋矩阵2之python大法好,四行就搞定,你敢信?

     Spiral Matrix II

    螺旋矩阵

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

    For example,
    Given n = 3,

    You should return the following matrix:

    [
     [ 1, 2, 3 ],
     [ 8, 9, 4 ],
     [ 7, 6, 5 ]
    ]

     

      看博客园有人面试碰到过这个问题,长篇大论看得我头晕。跑去leetcode讨论区,看来看去还是我python大法牛逼,四行就搞定了你敢信。。

    | 1 | 2 | 3 |

    | 8 | 9 | 4 |

    | 7   6 | 5 |

    如果看不明白的话,大致过程像上面这样,颜色相同表示在同一步骤里面执行

    >>> def generateMatrix(n):
    ...     A, low = [], n*n+1
    ...     while low > 1:
    ...         low, high = low - len(A), low
    ...         A = [list(range(low, high))] + list(zip(*A[::-1]))  # python3.3 语法 与2.7会有差别
    ...         print(A)
    ...     return A
    ...
    >>> generateMatrix(1)
    [[]]
    [[1]]
    [[1]]
    >>> generateMatrix(2)
    [[]]
    [[4]]
    [[3], 
     (4,)]
    [[1, 2], 
     (4, 3)]
    [[1, 2], (4, 3)]
    >>> generateMatrix(3)
    [[]]
    [[9]]
    [[8], 
     (9,)]
    [[6, 7], 
     (9, 8)]
    [[4, 5], 
     (9, 6), 
     (8, 7)]
    [[1, 2, 3], 
     (8, 9, 4), 
     (7, 6, 5)]
    [[1, 2, 3], (8, 9, 4), (7, 6, 5)]
    
  • 相关阅读:
    Git常用命令
    maven profile动态选择配置文件
    Nodejs的偏函数
    用CountDownLatch来同步java的多线程
    NodeJS的Promise的用法
    alluxio常用命令
    常见小代码
    Mongodb
    Mysql_常用语法
    PostgreSQL
  • 原文地址:https://www.cnblogs.com/Blaxon/p/4725646.html
Copyright © 2011-2022 走看看