楼梯算法速度提高

时间:2020-06-04 21:58:23

标签: python

有一个 a 代表楼梯的数量。列表b中的每个数字代表您可以从当前楼梯跳下的楼梯数量。您需要确定是否可以从第一个楼梯到达最后一个楼梯。

输入示例:

情况a)

8
1 3 0 0 2 0 1 1

情况b)

3
0 1 1

输出示例:

情况a)

True

情况b)

False

我设法创建了一个有效的代码,但超出了时间限制。所有数字都是正数,并且具有int类型。您能否给我一个想法,如何改进我的算法(如果可以这样命名的话)。

我的代码:

a = int(input())
b = list(map(int, input().split()))

flag = True
count = 0
for i in range(a):
    if b[i] > 0:
        if count != 0:
            position = i - count - 1
            if b[position] <= count:
                flag = False
                break
            count = 0
    elif b[i] == 0:
        if i == 0:
            flag = False
            break
        else:
            count += 1

print(flag)

谢谢。

0 个答案:

没有答案
相关问题