找零

找零

http://www.nowcoder.com/questionTerminal/944e5ca0ea88471fbfa73061ebe95728

时间复杂度:O(N)
空间复杂度:O(N)
动态规划。状态转移方程:
num(current_money+coin) = min(num(current_money+coin),num(current_money)+1)
coin是[1,4,16,64]的枚举

N = int(input())

num = []
for i in range(2000):
    num.append(2000)

num[0] = 0
num[1] = 1
num[4] = 1
num[16] = 1
num[64] = 1
for money in range(0,1024-N+1):
    for coin in [1,4,16,64]:
        num[money+coin] = min(num[money+coin],num[money]+1)
print(num[1024-N])
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-29 12:06
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务