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

leetcode:518. 零钱兑换 II[完全背包]

学习要点

  1. 理解完全背包思想
  2. 理解一维数组的解法

题目链接

        518. 零钱兑换 II - 力扣(LeetCode)

题目描述

解法:二维数组

class Solution {
public:int change(int amount, vector<int>& coins) {if (amount == 0)return 1;// dp[i][j]  0-i中任意无限取凑成j的最大方式int n = coins.size();vector<vector<uint64_t >> dp(n, vector<uint64_t>(amount + 1, 0));// 初始化for (int i = 1; i <= amount; i++) {if (i % coins[0] == 0) {dp[0][i] = 1;}}for (int i = 0; i < n; i++) {dp[i][0] = 1;}// 开始动归for (int i = 1; i < n; i++) {for (int j = 1; j <= amount; j++) {if (coins[i] > j) {dp[i][j] = dp[i - 1][j];} else {dp[i][j] = dp[i - 1][j] + dp[i][j - coins[i]];}}}return dp[n - 1][amount];}
};

解法:一维数组

class Solution {
public:int change(int amount, vector<int>& coins) {// 完全背包组合问题if(amount == 0) return 1;int n = coins.size();vector<uint64_t> dp(amount+1,0);// dp[j] = dp[j]上一层 + dp[j-coins[i]]这一层 dp[0] = 1;for(int i = 0;i<n;i++){for(int j = coins[i];j<=amount;j++){dp[j] += dp[j-coins[i]]; }}return dp[amount];}
};

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

相关文章:

  • BPE(Byte Pair Encoding)分词算法
  • leetcode:322. 零钱兑换[完全背包]
  • ARMv9架构
  • gitcode域名解析 Windows host
  • Redis的高级特性与应用实战指南
  • gitee 代码仓库面试实际操作题
  • WeakAuras 5.12.9 Ekkles lua
  • PICO4 MR开发之外部存储读写
  • 【SpringBoot 】Spring Boot OAuth2 六大安全隐患深度分析报告,包含渗透测试复现、漏洞原理、风险等级及完整修复方案
  • 飞算JavaAI:新一代智能编码引擎,革新Java研发范式
  • 二分查找【各种题型+对应LeetCode习题练习】
  • 我花10个小时,写出了小白也能看懂的数仓搭建方案
  • 用Python制作抖音风格短视频:从图片到精美视频的完整指南
  • CentOS7环境安装包部署并配置MySQL5.7
  • [TOOL] ubuntu 使用 ffmpeg 操作 gif、mp4
  • 解决Vue页面黑底红字遮罩层报错:Unknown promise rejection reason (webpack-internal)
  • 【跟着PMP学习项目管理】每日一练 - 1
  • 【JMeter】执行SQL
  • Python七彩花朵
  • C++——this关键字和new关键字
  • 专题 字符串 Unicode
  • 排序算法与前端交互优化
  • Elasticsearch混合搜索深度解析(下):执行机制与完整流程
  • JAVA JVM垃圾收集
  • 【C语言网络编程】HTTP 客户端请求(域名解析过程)
  • Django老年健康问诊系统 计算机毕业设计源码32407
  • 华为VS格行VS中兴VS波导随身WIFI6怎么选?流量卡OR随身WIFI,长期使用到底谁更香?
  • 优学教育实战03跟进管理
  • 亿级流量下的缓存架构设计:Redis+Caffeine多级缓存实战
  • 力扣-142.环形链表 II