gpt4 book ai didi

python - 如何使 while 迭代更快?

转载 作者:行者123 更新时间:2023-11-28 20:21:27 28 4
gpt4 key购买 nike

我在一个在线裁判网站上玩,其中一个问题给我一个超时错误,这意味着我的代码运行得太慢了。我知道 Python 通常是一种慢速语言,但有没有任何可能的方法来提高下面代码的速度?

a = input()
cards = []
for num in xrange(1,a+1):
cards.append(num)
counter = True

while len(cards) > 1:
if counter:
del cards[0]
counter = False
else:
cards.append(cards[0])
del cards[0]
counter = True

print cards[0]

已编辑

抱歉,这是一个如此模糊的问题。所以问题要求程序打印出执行后剩下的最后一张卡片。首先,第一张牌将被移除,接下来,第一张牌将被送到牌堆的最后面。重复此过程,直到牌堆中剩下一张牌。输入是卡片的数量。

假设输入为6,输出为4。

最佳答案

除了@Kasra 所建议的之外,您的代码中另一个较慢的部分是删除第 0 个索引处的项目,对于 lists it's O(N) operation。 .一个更好的数据结构是 collections.deque这允许在两端快速插入和删除。

关于python - 如何使 while 迭代更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721363/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com