gpt4 book ai didi

python - 在递增和并列的整数序列中找到给定位置 i 的整数

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:37 26 4
gpt4 key购买 nike

披露:这是为了帮助家庭作业

我想在给定位置 i 找到一个整数,同时反复构建和添加一个整数序列,最好具有良好的运行时间和性能。

最佳答案

您在 while 的每次迭代中从 1 开始重建子序列,而不是简单地保留一个序列并在接下来的迭代中添加下一个数字,然后扩展 主列表。

此外,您应该将 str.join 推迟到 while 之后,而不是在每次迭代时构建字符串:

from itertools import count

def give_output(digitPos):
c = count(1)
l, lst = [], []
while len(lst) <= digitPos:
l.append(next(c)) # update previous sub-sequence
lst.extend(l)
return int(''.join(map(str, lst))[digitPos-1])

时间:

In [10]: %%timeit
...: giveOutput(500)
...:
1000 loops, best of 3: 219 µs per loop

In [11]: %%timeit
...: give_output(500)
...:
10000 loops, best of 3: 126 µs per loop

大约一半的时间!

如果您使用 div-mod 方法而不是构建一个大字符串来选择第 i 个项目,您甚至可以做得更好;我会把它留给你。

关于python - 在递增和并列的整数序列中找到给定位置 i 的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45837168/

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