【LeetCode】59. 螺旋矩阵 II python实现

在这里插入图片描述

解题思路

每一次填充都由三个参数所决定,比如第一行的填充,就是由l,r和t决定,l和r决定填充的方向,t决定在上方进行填充。
在这里插入图片描述

python 代码

class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        matrix = []
        for i in range(n):
            matrix.append([0]*n)
        l,r,t,b = 0,n-1,0,n-1
        num = 0
        sss = n*n
        while num < sss:
        	# 从左到右
            for i in range(l,r+1):
                num += 1
                matrix[t][i] = num
            t += 1
            # 从上到下
            for i in range(t,b+1):
                num += 1
                matrix[i][r] = num
            r -= 1
            # 从右到左
            for i in range(r,l-1,-1):
                num += 1
                matrix[b][i] = num
            b -= 1
            # 从下到上
            for i in range(b,t-1,-1):
                num += 1
                matrix[i][l] = num
            l += 1
        return matrix

s = Solution()
result = s.generateMatrix(3)
print(result)
发布了222 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42247922/article/details/104612070