前面,我们对动态规划算法做了一个简单的介绍:算法之动态规划算法简介。下面,我们就动态规划算法做一下具体的介绍。
硬币找零问题虽然说硬币找零在现实生活中越来越少,但它仍然活跃在编程领域和面试问题当中,主要还是因为它极具代表性,也能多方面考察一个开发人员或面试者解决问题的能力。
首先,我们来看看这个算法问题的具体描述: 给定 n 种不同面值的硬币,分别记为 c[0], c[1], c[2], … c[n],同时还有一个总金额 k,编写一个函数计算出最少需要几枚硬币凑出这个金额 k?同时,每种硬币的个数不限,如果没有任何一种硬币组合能组成总金额时返回 -1。
示例 1:
输入:c[0]=1, c[1]=