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

代码随想录算法训练营第44天|动态规划:完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ

动态规划:完全背包理论基础

518.零钱兑换II

https://leetcode.cn/problems/coin-change-ii/

用一个二维dp数组

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

用一维

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

377. 组合总和 Ⅳ

https://leetcode.cn/problems/combination-sum-iv/

class Solution {
public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(target + 1, 0);dp[0] = 1;for (int j = 0; j <= target; j++) {for (int i = 0; i < nums.size(); i++) {if (j >= nums[i] && dp[j] < INT_MAX - dp[j - nums[i]]) {dp[j] += dp[j - nums[i]];}}}return dp[target];}
};

 

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

相关文章:

  • 309.买卖股票的最佳时机含冷冻期【Java】
  • React Promise 中断
  • 1.填空题 进制转换Oct.2023
  • node 解决多版本配置 error:03000086:digital 引起的问题 已解决
  • 前端面试题: js中对比两个对象的值是否相等? for..in 和 for...of的区别?
  • 第十七章:Java连接数据库jdbc(java和myql数据库连接)
  • Unity基于种子与地块概率的开放世界2D地图生成
  • 5.Vectors Transformation Rules
  • 聊聊httpclient的CPool
  • B2主题优化:WordPress文章每次访问随机增加访问量
  • 大模型部署手记(1)ChatGLM2+Windows GPU
  • Rust Rocket: 构建Restful服务项目实战
  • 苹果签名有多少种类之TF签名(TestFlight签名)是什么?优势是什么?什么场合需要应用到?
  • 如何将图片存到数据库(以mysql为例), 使用ORM Bee更加简单
  • 【“栈、队列”的应用】408数据结构代码
  • es的nested查询
  • <一>Qt斗地主游戏开发:开发环境搭建--VS2019+Qt5.15.2
  • python:进度条的使用(tqdm)
  • Java类型转换和类型提升
  • C# 读取 Excel xlsx 文件,显示在 DataGridView 中
  • Docker02基本管理
  • Scala第十章
  • 10.4 校招 实习 内推 面经
  • 从0开始深入理解并发、线程与等待通知机制(中)
  • UE5报错及解决办法
  • 怎么通过docker/portainer部署vue项目
  • 【面试经典150 | 矩阵】旋转图像
  • 机器人制作开源方案 | 家庭清扫拾物机器人
  • C++算法 —— 动态规划(8)01背包问题
  • ASUS华硕天选4笔记本FA507NU7735H_4050原装出厂Win11系统