gpt4 book ai didi

python - python中一个大列表的总和

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:42 24 4
gpt4 key购买 nike

从给定的大列表中计算整数的索引,该列表的删除不会影响列表的平均值

我尝试过线性时间方法,但它似乎无法通过数量超过 10^9 且列表大小超过 10^5 的测试用例。请建议一些更好的方法来解决此问题(如果有)或建议更有效的方法来对具有大值的大列表求和。下面是我的代码:

for _ in range(int(input())):
n=int(input())
#ar=list(map(int,input().split()))
ar=[int(x) for x in input().split()]
me=sum(ar)/n
for j in range(n):
#arr2=deepcopy(ar)
arr2=ar[:]
#arr2=[]
#for _ in ar:
# arr2.append(_)
arr2.remove(ar[j])
if (sum(arr2)/(n-1))==me:
print(j+1)
break
else:
print("Impossible")

代码在 10 个测试用例中有两个失败,仅仅是因为列表的长度和整数的大小增加了

最佳答案

你似乎在每次迭代中都对整个数组进行了深度复制,这很昂贵。为什么不检查一个项目是否等于平均值​​?

for _ in range(int(input())):
n = int(input())
ar = [int(x) for x in input().split()]
mean = sum(ar) / n
found = False

for j in range(n):
if ar[j] == mean:
print(j, " is the result.")
found = True
break

if not found:
print("Impossible")

关于python - python中一个大列表的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907267/

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