题解 | 螺旋矩阵(二)

螺旋矩阵(二)

https://www.nowcoder.com/practice/2c8078a728834e81a046fdefdea049aa

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型二维数组
#
class Solution:
    def Matrix(self , n: int) -> List[List[int]]:
        # write code here
        l, r, u, d = 0, n-1, 0, n-1#边界:左,右,上,下
        k, step = 1, n*n#计数,总字符数
        matrix = [[0]*n for _ in range(n)]#初始矩阵
        while k<=step:
            for i in range(l,r+1):#沿上边界从左到右
                matrix[u][i] = k
                k += 1
            u += 1#上边界收缩(边界已填充)
            for i in range(u,d+1):#沿右边界从上到下
                matrix[i][r] = k
                k += 1
            r -= 1#右边界收缩(边界已填充)
            for i in range(r,l-1,-1):#沿下边界从右到左
                matrix[d][i] = k
                k += 1
            d -= 1#下边界收缩(边界已填充)
            for i in range(d,u-1,-1):#沿左边界从下到上
                matrix[i][l] = k
                k += 1
            l += 1#左边界收缩(边界已填充)
        return matrix#返回填充后的矩阵

全部评论

相关推荐

在喝茶的杨桃很郁闷:我简单喵两句: 1.如果不是实在没东西写不要写熟悉async await这些语法层面的东西 2.也不要写熟悉HTTP,因为http内容很多,稍微深挖一点你不会的话会让人有一种“原来你简历上面的东西都没有完全掌握”的感觉,容易给自己挖坑 3.自我评价可以删了 4.我在复习明天的面试,先mark,后面再回来继续建议
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务