文章目录
- 一、题目
- 二、解法
- 三、完整代码
所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。
一、题目
二、解法
思路分析:本题的硬币是无数的,因此本题可以抽象成一个完全背包问题。完全背包和01背包的不同之处在于完全背包式从前往后遍历的。在本题的完全背包问题中,amount代表背包的最大重量,coins数组代表物品的重量和价值。 d p [ i ] dp[i] dp[i]代表背包重量为 i i i时,硬币凑成的组合(2 2 1 和 2 1 2这两个是不同排列,但是它们属于一个组合)总数为 d p [ i ] dp[i] dp[i]。我们将 d p [ 0 ] dp[0] dp[0]初始化为1,不需要找零也是一种组合。 d p [ j ] dp[j] dp[j]可以由 d p [ j − c o i n s [ i ] ] dp[j - coins[i]] dp[j−coins[i]]得出。因为求的是组合总数,所以递归公式为: d p [ j ] + = d p [ j − c o i n s [ i ] ] dp[j] += dp[j - coins[i]] dp[j]+=dp[j−coins[i]]。特别需要注意的是,因为题目要求的是组合数而不是排列数,所以本题循环采取的是先遍历物品,后遍历背包容量的形式。如果说题目要求的是排列数,例如【算法与数据结构】377、LeetCode组合总和 Ⅳ这道题要求的就是排列数,遍历顺序则需要用先遍历背包容量,后遍历物品的方式,保证每个背包容量所有的排列数都被遍历到。
程序如下:
class Solution { public: int change(int amount, vector
& coins) { vector dp(amount + 1, 0); dp[0] = 1; // 先遍历物品,再遍历背包 for (int i = 0; i < coins.size(); i++) { // 遍历物品 for (int j = coins[i]; j <= amount; j++) { // 遍历背包容量 dp[j] += dp[j - coins[i]]; } } return dp[amount]; } }; 复杂度分析:
- 时间复杂度: O ( n ∗ m ) O(n*m) O(n∗m), n=amount,m是coin数组的大小。
- 空间复杂度:
O
(
n
)
O(n)
O(n)。
三、完整代码
# include
# include # include using namespace std; class Solution { public: int change(int amount, vector & coins) { vector dp(amount + 1, 0); dp[0] = 1; // 先遍历物品,再遍历背包 for (int i = 0; i < coins.size(); i++) { // 遍历物品 for (int j = coins[i]; j <= amount; j++) { // 遍历背包容量 dp[j] += dp[j - coins[i]]; } } return dp[amount]; } }; int main() { Solution s1; int amount = 5; vector coins = { 1, 2, 5 }; int result = s1.change(amount, coins); cout << result << endl; system("pause"); return 0; } end
猜你喜欢
- 10天前(零碳中国·绿色投资蓝皮书)中国"零碳"差旅之路暨"绿色低碳酒店"标准研究项目成果发布会召开
- 10天前(郭富城热舞劲歌演唱会)郭富城年度压轴《新濠尊属系列郭富城梦幻舞林演唱会2023》
- 10天前(安徽民宿发展报告)首届安徽省乡村民宿创意设计大赛启动
- 10天前(瑞士大酒店-自助餐怎么样)瑞意心旅,以食为先 瑞士酒店开启全新"瑞士早餐计划"
- 10天前(东北地区全域旅游)东北三省一区宣传贯彻研学旅游行业标准
- 10天前(马尔代夫华尔道夫酒店多少钱)Chef Zhao就任马尔代夫伊挞富士岛华尔道夫酒店Li Long中餐厅新主厨
- 10天前(万豪旅享家活动2021)精彩上新,漫享夏日----跟随万豪旅享家新开酒店解锁夏日旅行灵感
- 10天前(上海迪士尼 夏天)酷爽夏日,奇妙相伴!来上海迪士尼度假区清凉入夏
- 10天前(新西兰登陆《我的世界》!全球首个目的地游戏模组震撼上线)新西兰登陆《我的世界》!全球首个目的地游戏模组震撼上线
- 10天前(曹妃甸美仑华府哪个楼层好)曹妃甸新城教育经济新引擎启动—美仑国际酒店盛大开业
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章