当前位置: 首页 > news >正文

Leetcode 518. 零钱兑换 II 动态规划

原题链接:Leetcode 518. 零钱兑换 II

在这里插入图片描述

可参考官解:零钱兑换 II 和这个解答:[Java/Python3/C++]动态规划:拆分零钱兑换子问题(嵌套循环的秘密)【图解】

此题需要仔细想象和Leetcode 377. 组合总和 Ⅳ 动态规划的区别,本次是求组合数,是不考虑顺序的,Leetcode 377. 组合总和 Ⅳ 动态规划是求排列数,需要考虑顺序,因此答案更大。

class Solution {
public:int change(int amount, vector<int>& coins) {vector<int> dp(amount + 1,0); // dp[i]表示凑成金额i的组合数,初始都为0表示不可凑dp[0] = 1;         // 金额0有一种组合方式,由0枚硬币组成vector<int> can_change(amount + 1, 0);can_change[0] = 1;for (auto& c : coins) {// 枚举每一个金额for (int a = c; a <= amount; a++) {can_change[a] |= can_change[a - c];}}if (can_change[amount] == 0)return 0;// 枚举每一种硬币// 先遍历所有硬币,再遍历金额数,这样会考虑使用硬币的顺序,不会出现先选1,再选2,和先选2再选1同时出现的情况// 比如amount = 5, coins = [1, 2,// 5],第一次外循环和内循环,就是计算,所有金额数只用coin=1组合得到的情况// 第二次外循环和内循环,遍历在之前的金额数dp[i]的基础上,加上2得到当前金额数的可能,即先1后2的可能,不会再反复计算先2后1的可能for (auto coin : coins) {for (int i = coin; i <= amount; i++) {dp[i] += dp[i - coin];}}return dp[amount];}
};// 5
// [1,2,5]
// 1
// dp[1]=0+dp[0]=1;
// dp[2]=0+dp[1]=1;
// dp[3]=0+dp[2]=1;
// dp[4]=0+dp[3]=1;
// dp[5]=0+dp[4]=1;// 2
// dp[2]=1+dp[0]=2;
// dp[3]=1+dp[1]=2;
// dp[4]=1+dp[2]=3;
// dp[5]=1+dp[3]=3;// 5
// dp[5]=3+dp[0]=4;
http://www.lryc.cn/news/521005.html

相关文章:

  • 【EI 会议征稿】第四届材料工程与应用力学国际学术会议(ICMEAAE 2025)
  • 集合的线程安全
  • 《深入理解Mybatis原理》Mybatis中的缓存实现原理
  • C# 数据拟合教程:使用 Math.NET Numerics 的简单实现
  • C# 中对 Task 中的异常进行捕获
  • Android车机DIY开发之软件篇(九)默认应用和服务修改
  • SimpleFOC01|基于STM32F103+CubeMX,移植核心的common代码
  • web.xml常用配置
  • 代码随想录刷题day07|(数组篇)58.区间和
  • 【Linux】进程结束和进程等待
  • 可编辑精品PPT | 城投集团(行业)数字化解决方案
  • 统计学习算法——决策树
  • 基于网络爬虫技术的网络新闻分析
  • 51_Lua面向对象编程
  • 关于在 Kotlin DSL 中,ndk 的配置方式
  • 【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis
  • Spring Boot 应用开发入门
  • 【C语言】字符串函数详解
  • 【Vim Masterclass 笔记14】S07L29 + L30:练习课08 —— Vim 文本对象同步练习(含点评课内容)
  • 非PHP开源内容管理系统(CMS)一览
  • WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS
  • SQLAlchemy -批量插入时忽略重复
  • 1月13日学习
  • Steam个人开发者注册备记
  • django在线考试系统
  • Laravel 中 Cache::remember 的基本用途
  • 前端进程和线程及介绍
  • OpenGL —— 基于Qt的视频播放器 - ffmpeg硬解码,QOpenGL渲染yuv420p或nv12视频(附源码)
  • Vue Router
  • 【黑灰产】人工查档业务产业链