我正在尝试在硬币找零问题中实现贪心方法,但需要降低时间复杂度,因为编译器不会接受我的代码,而且由于我无法验证我什至不知道我的代码是否真的正确. 该函数应返回进行更改所需的注释总数。如果无法获得给定金额的找零,则返回 -1。如果金额等于面额列表中可用的一种货币,则返回 1。
def make_change(denomination_list, amount):
denomination_list.sort()
n = len(denomination_list)
i = n - 1
ans = 0
x = 0
while i>= 0 :
while denomination_list[i]<= amount:
ans = +1
amount -= denomination_list[i]
i -= 1
if amount == 0:
x = 1
elif amount<0:
x = -1
return x
amount= 20
denomination_list = [1,15,10]
print(make_change(denomination_list, amount))
白猪掌柜的
相关分类