59. 螺旋矩阵 II (leetcode)

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

示例:

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

来源:https://leetcode-cn.com/problems/spiral-matrix-ii

打卡:

class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        mat=[[0 for i in range(n)] for i in range(n)]
        i,j,di,dj=0,0,0,1
        for k in range(1,n**2+1):
            mat[i][j]=k
            if i+di>=n or j+dj>=n:
                di,dj=dj,-di       
            elif mat[i+di][j+dj]>0:
                di,dj=dj,-di 
            i+=di
            j+=dj
        return mat

猜你喜欢

转载自blog.csdn.net/Yao_June/article/details/112796265