在打印从 1 到 n*n 的数字螺旋的代码中找不到错误,错误“超出时间限制”

Can't find error in code for printing a spiral of numbers from 1 to n*n, error "Time limit exceeded"

提问人:Dreamofwhiteking 提问时间:6/11/2023 更新时间:6/11/2023 访问量:16

问:

超出时限

n=int(input())
a=[[0 for j in range(n)]for i in range(n)]
n1=0
i=0
c=0
while c<len(a)**2:
    if i<=(n+1)//2:
        for j in range(n1, n-n1-1):
            c+=1
            a[i][j]=c
        n1+=1
        i=n-n1
        for j in range(n1, n-n1-1):
            c+=1
            a[j][i]=c
    if i>(n+1)//2:
        for j in range(n-1-n1, n1-1, -1):
            c+=1
            a[i][j]=c
        n1+=1
        for j in range(n-1, n1-1, -1):
            a[j][i]=c
            c+=1
        i=n1-1
for i in range(n):
    for j in range(n):
        print (a[i][j])

我找不到我的代码有什么问题。它总是导致“超过时间限制”。此代码通过填充嵌套列表,然后打印它来创建从 1 到 n*n 的数字的螺旋。

蟒蛇 时间 螺旋

评论

0赞 Michael Butscher 6/11/2023
这是来自 Leetcode 等网站的错误,如果程序的编写方式解决任务太慢(或永无止境)。

答: 暂无答案