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

代码随想录算法训练营第四十四天

sad的一天,明天开始上班,而且娃还行,媳妇儿状态不稳定,太难了也!!!

 完全背包

#include<vector>
#include<iostream>
using namespace::std;
int main(){int N;//种类int V;//空间cin >> N;cin >> V;vector<int>wi(N,0);vector<int>vi(N,0);for(int i = 0; i< N ;i++){cin >> wi[i];cin >> vi[i];}vector<int>dp(V+1,0);for(int i = 0;i < N;i++){for(int j = wi[i];j < V+1;j++){dp[j] = max(dp[j],dp[j - wi[i]]+vi[i]);}}std::cout << dp[V] << std::endl;return 0;
}

我理解的01背包和完全背包的核心代码区别:

01背包:物品在只能用一次,所以用背包空间去减当前物品的重量,然后去看是否需要用这个物品。

完全背包:用当前物品的重量去填满背包空间,然后用不同的物品去放。

 518. 零钱兑换 II  

随想录:这个递推公式大家应该不陌生了,我在讲解01背包题目的时候在这篇494. 目标和 (opens new window)中就讲解了,求装满背包有几种方法,公式都是:

dp[j] += dp[j - nums[i]];

class Solution {
public:int change(int amount, vector<int>& coins) {int N = coins.size();vector<int>dp(amount+1,0);dp[0] = 1;//和我昨天纠结那题一样,昨天用的是二维查表 494题for(int i = 0;i < N;i++){for(int j = coins[i];j < amount+1;j++){dp[j] += dp[j - coins[i]];}}return dp[amount];}
};

377. 组合总和 Ⅳ  

因为存在不同顺序算不同的方法,所以for循环的内外循环需要变更,先遍历空间,再遍历物品。否则物品是有先后顺序的。

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

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

相关文章:

  • 【3dmax笔记】027:配置修改器集、工具栏自定义与加载
  • Reactor模型详解
  • 内存卡罢工,数据危机?别急,有救!
  • python爬虫实战
  • k8s 资源文件参数介绍
  • mac系统安装steam报错-解决办法
  • 这个簇状柱形图怎么添加百分比?
  • Tomact安装配置及使用(超详细)
  • web后端——netbeans ide +jsp+servlet开发学习总结
  • 使用request-try-notifyState流程实现UI控制与状态反馈的完整闭环
  • 屏蔽罩材质和厚度对屏蔽效能的影响
  • Qt简单离线音乐播放器
  • 微信小程序常用的api
  • iOS xib布局
  • UNI-APP_拨打电话权限如何去掉,访问文件权限关闭
  • Git知识点汇总表格总结
  • 漫谈:C语言 奇葩的指针定义规则
  • spring boot中一般如何使用线程池
  • Shader 纹理动画和顶点动画
  • 使用macof发起MAC地址泛洪攻击
  • 力扣:1979. 找出数组的最大公约数(Java)
  • 电瓶车充电桩:潜藏的暴利行业,简单入门到月入万元!
  • mac监听 linux服务器性能可视化(Grafana+Promethus+Node_exporter)
  • 【负载均衡在线OJ项目日记】运行功能开发
  • Qt | QLineEdit 类(行编辑器)
  • Mamba结构的Demo源码解读
  • 金仓面对面 | 人大金仓×安硕信息共话金融信用风险管理数字化转型之道
  • JavaScript值类型与引用类型的区别
  • 每日一博 - 闲聊架构设计中的多级缓存设计
  • 轻松实现MySQL集群配置:一主一从与一主多从教程