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

动态规划-完全背包问题——518.零钱兑换II

1.题目解析

建议先看 322.零钱兑换可以 更加轻松的理解本题

题目来源

518.零钱兑换——力扣

 测试用例

2.算法原理

1.状态表示

本题要求返回所有情况,所以dp值就代表所有的方法数,即

dp[i][j]:在[1,i]个硬币中选择不同面值的硬币,此时面值总和恰好为j时所有的选择方法数

2.状态转移方程

3.初始化

4.填表顺序

从上到下,每一行从左到右

5.返回值 

返回最后一个位置的值

3.实战代码

class Solution {
public:int change(int amount, vector<int>& coins) {int n = coins.size();vector<vector<double>> dp(n+1,vector<double>(amount+1));dp[0][0] = 1;for(int i = 1;i <= n;i++){for(int j = 0;j <= amount;j++){dp[i][j] += dp[i-1][j];if(j >= coins[i-1] && dp[i-1][j-coins[i-1]] != -1){dp[i][j] += dp[i][j-coins[i-1]];}}} return dp[n][amount];}
};

代码解析 

4.优化

http://www.lryc.cn/news/485912.html

相关文章:

  • [模板总结] - 单向链表LinkedList操作
  • fastadmin多个表crud连表操作步骤
  • 山西省网络建设与运维第十八届职业院校技能大赛(样题)
  • 服务端高并发分布式结构进阶之路
  • 分布式微服务项目,同一个controller不同方法间的转发导致cookie丢失,报错null pointer异常
  • STM32 ADC --- 任意单通道采样
  • vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-
  • 蓝桥杯每日真题 - 第7天
  • 【Git】Git Clone 指定自定义文件夹名称:详尽指南
  • 终端快捷键学习笔记
  • Go语言24小时极速学习教程(四)MySQL数据库的增删改查
  • 04 - Clickhouse-21.7.3.14-2单机版安装
  • 多项式回归
  • vscode报错:Connecting with SSH time-out.
  • python可视化将多张图整合到一起(画布)
  • C函数如何返回参数lua使用
  • pytest在conftest.py中实现用例执行失败进行截图并附到allure测试报告
  • 编程之路,从0开始:数据在内存中的存储
  • 二叉树+树的OJ题讲解
  • 信捷PLC转以太网连接电脑方法
  • 释放 PWA 的力量:2024 年的现代Web应用|React + TypeScript 示例
  • CVSS4与CVSS3的不同之二
  • 【Pip】如何清理 `pip` 包管理器 —— 完整指南
  • 操作数据库
  • lua-lru缓存算法解析
  • Python - 初识Python;Python解释器下载安装;Python IDE(一)
  • 鸿蒙学习基本概念
  • 正则表达式(补充)
  • 第23课-C++-红黑树的插入与旋转
  • 【C#】C#编程入门指南:构建你的.NET开发基础