leetcode 腾讯精选练习(50 题)59.螺旋矩阵 II

原题目

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

Example:

Input: 3
Output:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]
思路
第一遍解法

网上好的解法
class Solution:
    def generateMatrix(self, n): 
        ans, lo = [[n*n]], n*n
        
        while lo > 1:
            lo, hi = lo-len(ans), lo
            ans = [[i for i in range(lo, hi)]] + [list(j) for j in zip(*ans[::-1])]
        return ans

从空白矩阵开始向矩阵里面添加数字。从 9 开始添加直到添加 1 停止。每次添加完之后都将矩阵顺时针旋转,再将新的数字加到旋转后的矩阵上面一行。原答案链接

    ||  =>  |9|  =>  |8|      |6 7|      |4 5|      |1 2 3|
                     |9|  =>  |9 8|  =>  |9 6|  =>  |8 9 4|
                                         |8 7|      |7 6 5|
自己可以改进的地方

最简代码

获得的思考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值