python - python中一个大列表的总和
问题描述
从给定的大列表中计算整数的索引,其删除不会影响列表的平均值
我尝试过线性时间方法,但它似乎无法通过数字超过 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 个测试用例中的两个失败,只是因为列表的 len 和整数的大小增加
解决方案
您似乎在每次迭代中都对整个数组进行了深层复制,这很昂贵。为什么不只检查一个项目是否等于平均值?
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")
推荐阅读
- c# - 从 Typescript 调用 C# 类文件
- r - 使用序列命名列表中的数据框
- ios - 如何附加来自 JSON 的数据
- python - 是否可以在不使用 Python 打开对站点的请求的情况下检查某个 url 是否正在重新编辑?
- c++ - c++ 的 gsl_function 替代品
- angularjs - 使用 ng-upgrade 将 Angularrjs 转换为 Angular
- php - Laravel 分页将数据附加到一个变量中,将其他数据附加到另一个变量中
- android - 无法获取联系人获取详细信息将联系人获取到 Firebase 数据库
- android - RxJava Room with Flowable:仅返回新行
- makefile - Makefile 在另一个目录中编译一个库,当它不存在或目录已被修改时