我希望理解为什么这个Python函数不能很好地扩展,以及如何通过加快它来改进它。
代码的目的是获得可以购买的最高数量的股票,给定A股票价格和价格A(i)的股票数量是i + 1。说明:给定列表[2,3,4],人们只能购买一个价格为2的股票,两个价格为3 e.t.c的股票。
def MaximumStockNumber (n, k, a):
"""a is a list of integers, k is the amount constraint and n is the number of integers"""
numValuePairs = sorted([(index+1, value) for index, value in enumerate(a)], key = lambda x: x[1])
stocks = 0
for i in numValuePairs:
a = i[0]
if i[1]<=k:
while a>0:
if i[1]<=k:
stocks +=1
k = k-i[1]
a -=1
if k==0:
return stocks
return stocks