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

算法训练营第四十四天|动态规划:完全背包理论基础 518.零钱兑换II 377. 组合总和 Ⅳ

目录

  • 动态规划:完全背包理论基础
  • Leetcode518.零钱兑换II
  • Leetcode377. 组合总和 Ⅳ

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

文章链接:代码随想录
题目链接:卡码网:52. 携带研究材料

思路:完全背包问题,物品可以无限取,即不用考虑是否重复添加,在一维(滚动)数组解法上,将背包遍历变为正序。

# include <bits/stdc++.h>
using namespace std;void solve(int N, int V){vector<int> dp(V + 1);vector<int> weight(N), value(N);for (int i = 0; i < N; i++){cin >> weight[i] >> value[i];}for (int i = 0; i < N; i++){for (int j = weight[i]; j <= V; j++){dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}}cout << dp[V] << endl;
}int main(){int N ,V;cin >> N >> V;solve(N , V);return 0;
}

Leetcode518.零钱兑换II

文章链接:代码随想录
题目链接:518.零钱兑换II

思路:完全背包求组合问题,改一下状态转移方程即可。

class Solution {
public:int change(int amount, vector<int>& coins) {vector<int> dp(amount + 1);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];}
};

Leetcode377. 组合总和 Ⅳ

文章链接:代码随想录
题目链接:377. 组合总和 Ⅳ

思路:完全背包求排列问题,先遍历背包,再遍历物品,注意用例超界。

class Solution {
public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(target + 1);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/278430.html

相关文章:

  • 探索计算机网络:应用层的魅力
  • MySQL 按日期流水号 条码 分布式流水号
  • 前端导出Excel文件,部分数字前面0消失处理办法
  • 零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇
  • 第十二届“中关村青联杯”全国研究生数学建模竞赛-A题:水面舰艇编队防空和信息化战争评估模型(续)(附MATLAB代码实现)
  • bmp图像文件格式超详解
  • Unity Meta Quest 一体机开发(十三):【手势追踪】自定义交互事件 EventWrapper
  • 13、Redis高频面试题
  • Koa学习笔记
  • HiDataPlus 3.3.2-005 搭建(个人的一点心得体会 x86 平台)
  • 【PHP】PHP实现与硬件串口交互,接收硬件发送的实时数据
  • HNU-数据库系统-作业
  • Python基础知识:整理10 异常相关知识
  • golang并发安全-select
  • 微软Visual Studio产品之Visual C++编程进阶——一维数组(画画版)
  • Moonbeam生态项目分析 — — 下一代DeFi协议HydraDX
  • Spark九:Spark调优之Shuffle调优
  • linux c多线程优先级
  • Redis在项目开发中的应用
  • mapper向mapper.xml传参中文时的乱码问题
  • 基于Docker官方php:7.1.33-fpm镜像构建支持67个常见模组的php7.1.33镜像
  • Type-C PD充电器受电端sink诱骗取电汇总:小家电应用5V9V12V15V20V28V
  • 禁用code server docker容器中的工作区信任提示
  • JSON格式插件-VUE
  • dubbo的springboot集成
  • 【人工智能】智能电网:未来能源的革命
  • 【AIGC】一组精美动物AI智能画法秘诀
  • JS 高频面试题
  • linux—多服务免密登录
  • 【MySQL】数据库之MHA高可用