leetcode_59_螺旋矩阵II

让人想犯罪 __ 提交于 2020-03-02 11:23:57

螺旋矩阵II

描述

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

示例

输入: 3
输出:
[
    [ 1, 2, 3 ],
    [ 8, 9, 4 ],
    [ 7, 6, 5 ]
]

解题

第54题是有一个二维矩阵,螺旋取出其值,这一题反了一下而已,往矩阵填数字,而且还是方阵

可以看作一圈一圈从外圈到内圈填数字

class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        result = [[0 for i in range(n)] for j in range(n)]
        count = 1
        j = 0 # 螺旋矩阵一圈一圈的第几圈
        while count <= n*n:
            # 从左往右
            for i in range(j, n-j):
                result[j][i] = count
                count += 1
            # 从上往下
            for i in range(j+1, n-j):
                result[i][n-j-1] = count
                count += 1
            # 从右往左
            for i in range(n-j-2, j-1, -1):
                result[n-j-1][i] = count
                count += 1
            # 从下往上
            for i in range(n-j-2, j, -1):
                result[i][j] = count
                count += 1
            j += 1 # 填完一圈的数字,往里一圈
        return result
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!