题解 | #蛇形矩阵#

蛇形矩阵

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

n = int(input())

lists = []

for i in range(n):  # 先初始化一个二维列表,当作容器
    ls = []
    for j in range(n):
        ls.append(0)
    lists.append(ls)

counter = 1  # 记录每一步的值

i, j = 0, 0  # 从0,0开始

while True:
    
    # print(i,j)
    lists[i][j] = counter  # 给每一步附上值
    counter += 1

    # 默认斜向上移动
    i -= 1
    j += 1

    if i == -1 and j == n:   # 在草稿纸上手写几个蛇形矩阵会发现,-1,n是结束位置
        break                # 所以当默认斜向上移动后,到达这个位置就退出循环

    if i == -1:  # 同样会发现规律,当按照默认斜向上走一步后,到达的是i等于-1的位置,意味着需要换行,并且下一行的i,就是当前的j
        i = j
        j = 0


for i in range(n):     # 按着蛇形走完后,则输出
    for j in range(n):
        if lists[i][j] != 0:
            print(lists[i][j], end=' ')
    print()
            

全部评论

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务