0
我的下面的代码使用使用关于(30000输入元件)超过300000 KB并且存在每存储器使用的限制(256 MB),所以有任何方法来优化它?如何优化此代码以减少内存使用量?
import itertools
def get_subsets(arr,m) :
return list(itertools.combinations(arr,m))
def _9(string) :
count =0
for i in range(len(string)-1 , -1 ,-1) :
if string[i] != '9' :
break
count += 1
return count
if __name__ == "__main__" :
length = int(input())
arr = [int(x) for x in input().strip().split()]
pairs = get_subsets(arr,2)
max_9 = [_9(str(x[0]+x[1])) for x in pairs]
max_9_0 = max(max_9)
print(max_9_0,max_9.count(max_9_0))
的问题是: 让我们定义的价格的质量为在其端部(最右边的位是等于9的数量)的9的数量。例如,数字2999和123912391999都有质量3,而952有质量0
有n产品具有明显的价格T1,T2,...,TN。
你打算买正好两个产品(它们必须是不同的)。请找出所选产品总价格的最高质量。此外,找出选择两种不同产品的方法数量,并获得总价格的最大可能质量。
你可以通过不物化组合的迭代开始...... –
你为什么建设这么多的列表时,迭代器正常工作? – user2357112
@ user2357112好的,我会用迭代器改变列表。 –