在Python中查找最大的冰激淋棒
假设我们有一个名为costs的n个元素的数组,其中costs[i]是第i个冰激淋棒的价格,以硬币计算。我们最初有c个硬币要花费,并且希望尽可能多地购买冰激凌棒。我们必须找到我们可以用c个硬币购买的最大冰激淋棒数量。
因此,如果输入如下:costs = [3,1,4,5,2],c = 10,则输出将为4,因为我们可以购买在索引0,1,2,4中的冰激淋棒,其总价格为3 + 1 + 4 + 2 = 10。
要解决这个问题,我们将按照以下步骤进行操作−
- 将列表costs排序
-
i:= 0
-
当i小于costs中元素的数量且c大于等于costs[i]时,执行
- c:= c – costs[i]
-
i := i+1
-
返回i
示例
让我们看一下以下实现,以更好地理解−
def solve(costs, c):
costs.sort()
i=0
while(i<len(costs) and c >= costs[i]):
c = c-costs[i]
i=i+1
return i
costs = [3,1,4,5,2]
c = 10
print(solve(costs, c))
输入
[3,1,4,5,2], 10
输出
4