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好的,我會用迭代器改變列表。 –