题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

队列一遍过

N = int(input())
martix = [[0] * N for _ in range(N)]


def snake(N=4):
    n = N * (1 + N) / 2
    count = 1
    queue = [[0, 0]]
    while queue and n > 0:
        item = queue.pop(0)
        martix[item[0]][item[1]] = count
        count += 1
        if not queue or queue[-1] != [item[0] + 1, item[1]]:
            queue.append([item[0] + 1, item[1]])
        if not queue or queue[-1] != [item[0], item[1] + 1]:
            queue.append([item[0], item[1] + 1])
        n -= 1


snake(N)

def fprint(martix):
    r  = 0
    while r <  len(martix):
        c =  0
        while c < len(martix[0]):
            if martix[r][c] != 0:
                print(martix[r][c], end=' ')
            c+=1
        print()
        r+=1
fprint(martix)

全部评论

相关推荐

06-07 17:17
嘉兴学院 教师
心爱的idea:你孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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