自学动态规划——目标和

目标和

494. 目标和 - 力扣(LeetCode)

这次做的时候递推公式搞错了捏。

经过一些列骚操作(详情见代码首部注释),我们成功将目的转化为:给i个物品,重量和价值一致,最大容量s1,求能恰好装满s1的方法数。本来我想直接用之前的方法,每处理一件商品就判断一下,看看是不是到达最大容量了。如果是,那就ans++。但是这个思路有个致命的问题,就是会重复计算,比如我1 2 3可以,然后当i=4的时候,我不要4,那此时的结果因为取最大值,所以还是1 2 3,还是算做一次。

但是如果递推公式用 dp[j] += dp[j - nums[i]]; 就不一样了,注意初始化 dp[0]=1,否则根本累加不了。

AC:

//相当于就是分成两组,两组和之差是target,求这种组合的方法个数
//s1-s2=target  s1+s2=sum --> s1=(sum+target)/2,也就是求当前背包装的值为s1的个数
int findTargetSumWays(vector<int>& nums, int target)
{int sum=0;for(auto it:nums)   sum+=it;if((sum+target)%2==1)   return 0;   //如果和为奇数,那一定凑不出来int s1=(sum+target)/2;vector<int>dp(s1+1,0);  //dp[i][j] 表示的是遍历前i个,当容量为j时,能放的方法数量dp[0]=1;for(int i=0;i<nums.size();i++)for(int j=s1;j>=nums[i];j--){dp[j] += dp[j - nums[i]];   //当前总方案数=之前统计的方案数+新增的方案数(也就是不选当前物品的方案数)}return dp[s1];
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GNU/Linux - 时区设置

CST China Standard Time 北京时间/中国标准时间 在时区划分上&#xff0c;属东八区&#xff0c;比协调世界时早 8 小时&#xff0c;记为 UTC8 GMT Greenwich Mean Time 格林威治标准时间 是指位于英国伦敦郊区的格林尼治天文台的标准时间&#xff0c;因为本初子午线被定…

推荐系统学习笔记(四)--基于向量的召回

离散特征处理 离散特征&#xff1a;性别&#xff0c;国籍&#xff0c;英文单词&#xff0c;物品id&#xff0c;用户id 处理&#xff1a; 建立字典&#xff1a;eg&#xff1a;china 1 向量化&#xff1a;eg&#xff1a;one-hot /embedding&#xff08;低维稠密向量&#xf…

C语言----判断n是否是2的次方数,利用到按位与,算法n(n-1)

//写一个代码&#xff0c;判断n是否是2的次方数 //if(n&(n-1))0 /* 2的0次方是1---二进制1 2的1次方是2---二进制10 2的2次方是4---二进制1002的一次方-1是1---二进制是1 2的二次方-1是3---二进制是11 2的三次方-1是7---二进制是111 n与n-1 按位与后&是0就是0&#xf…

网络模型-BFD与网络协议联动

一、BFD:双向转发检测 双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制&#xff0c;用于快速检测、监控网络中链路或者IP路由的转发连通状况。 1、BFD优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口数据链路&#…

​✨聚梦AI绘图插件-for photoshop(基于ComfyUI) 内测版V0.1发布

&#x1f388;背景 photoshop本身是有AI生成能力的&#xff0c;不过限于种种原因&#xff0c;国内使用很不方便。 photoshop也是有AI插件的&#xff0c;不过大多安装起来比较复杂&#xff0c;或者&#xff0c;干脆就会收费。 所以我们做了一个免费的AI插件&#xff0c;期望能…

计算机毕业设计 | SpringBoot招投标 任务发布网站(附源码)

1&#xff0c;绪论 在市场范围内&#xff0c;任务发布网站很受欢迎&#xff0c;有很多开发者以及其他领域的牛人&#xff0c;更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上&#xff0c;任务发布网站鱼龙混杂&#xff0c;用户需要找一个…

民国漫画杂志《时代漫画》第24期.PDF

时代漫画24.PDF: https://url03.ctfile.com/f/1779803-1248635000-177187?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

iOS ------多线程NSOperation,NSOperationQueue

1,NSOperation&#xff0c;NSOperationQueue简介 NSOperation&#xff0c;NSOperationQueue是苹果提供我们的一套多线程解决方案。实际上NSOperationa&#xff0c;NSOperationQueue是基于GCD更高一层的封装。但是比GCD更简单易用&#xff0c;代码可读性也会更高。 为什么要使…

基于xilinx FPGA的 FFT IP使用例程说明文档(可动态配置FFT点数,可计算信号频率与幅度)

目录 1 概述2 IP examples功能3 IP 使用例程3.1 IP设置3.2 fft_demo端口3.3 例程框图3.4 仿真结果3.5 仿真验证得出的结论4 注意事项5例程位置 1 概述 本文用于讲解xilinx IP 的FFT ip examples的功能说明&#xff0c;方便使用者快速上手。 参考文档&#xff1a;《PG109》 2 …

Python数据可视化(五)

实现GUI效果 借助 matplotlib&#xff0c;除可以绘制动画内容外&#xff0c;还可以实现用户图形界面的效果&#xff0c;也就是 GUI 效果。 GUI是用户使用界面的英文单词首字母的缩写。接下来&#xff0c;我们就以模块widgets中的类RadioButtons、 Cursor 和 CheckButtons 的使用…

Wpf 使用 Prism 实战开发Day25

首页待办事项及备忘录添加功能 一.修改待办事项和备忘录逻辑处理类,即AddMemoViewModel和AddTodoViewModel 1.AddMemoViewModel 逻辑处理类&#xff0c;添加View视图数据要绑定的实体类 Model public class AddMemoViewModel :BindableBase,IDialogHostAware{public AddMemoV…

【B站 heima】小兔鲜Vue3 项目学习笔记Day03

文章目录 Home1.Home整体结构搭建和分类实现2. banner轮播图功能3. Home 面板组件封装4.新鲜好物和人气推荐实现5. 图片懒加载指令实现6. Home- product产品列表实现7. Home-GoodsItem 组件封装 一级路由1. 整体认识和路由配置2. 面包屑导航3. 一级分类 - 轮播图的实现4. 激活状…

基于Pytorch框架的深度学习EfficientNet神经网络香蕉水果成熟度识别分类系统源码

第一步&#xff1a;准备数据 4种香蕉水果成熟度数据&#xff1a;overripe&#xff0c;ripe&#xff0c;rotten&#xff0c;unripe&#xff08;过熟、熟、烂、未成熟&#xff09;&#xff0c;总共有13474张图片&#xff0c;每个文件夹单独放一种成熟度数据 第二步&#xff1a;搭…

ZEDmini使用完全指南

ZEDmini使用 ZED stereolabs 开箱测评 使用说明 ubuntu18.04nvidiacuda10 ubuntu18.04ZED SDK安装和使用 Ubuntu16.04安装NVIDIA显卡驱动 查看显卡信息 redwallredwall-G3-3500:~/catkin_ws$ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation Device …

sourcetree推送到git上面

官网&#xff1a;Sourcetree | Free Git GUI for Mac and Windows 下载到1次提交 下载后打开 点击跳过 下一步 名字邮箱 点击clone 把自己要上传的代码粘贴到里面去 返回点击远程->点击暂存所有 加载完毕后&#xff0c;输入提交内容提交 提交完成了 2次提交 把文件夹内的…

element-plus dialog 修改密码mask没有覆盖全屏

最近在使用element-plus中的Dialog对话框的时候,做修改密码的功能&#xff0c;我放在navbar组件中,造成了打开对话框的遮罩层无法全屏显示, append-to-body Dialog 自身是否插入至 body 元素上。 嵌套的 Dialog 必须指定该属性并赋值为 true 这个属性加到el-dialog上即可,然后…

# SSH端口转发之上网代理、正向代理、反向代理用法

SSH端口转发之上网代理、正向代理、反向代理用法 文章目录 SSH端口转发之上网代理、正向代理、反向代理用法1 ssh参数说明&#xff1a;2 一般用法&#xff1a;3 用法范例&#xff1a;4 示例与解释&#xff1a;5 SSH概念详解**5.1. SSH端口转发的概念****5.2. SSH端口转发的类型…

【java程序设计期末复习】chapter4 类和对象

类和对象 编程语言的几个发展阶段 &#xff08;1&#xff09;面向机器语言 计算机处理信息的早期语言是所谓的机器语言&#xff0c;使用机器语言进行程序设计需要面向机器来编写代码&#xff0c;即需要针对不同的机器编写诸如0101 1100这样的指令序列。 &#xff08;2&#x…

力扣爆刷第144天之二叉树四连刷(完结二叉搜索树改变树结构)

力扣爆刷第144天之二叉树五连刷&#xff08;二叉搜索树&#xff09; 文章目录 力扣爆刷第144天之二叉树五连刷&#xff08;二叉搜索树&#xff09;一、450. 删除二叉搜索树中的节点二、669. 修剪二叉搜索树三、108. 将有序数组转换为二叉搜索树四、538. 把二叉搜索树转换为累加…

【JavaScript】文件下载

文件下载的消息格式 服务器只要在响应头中加入 Content-Disposition: attachment; filename"kxx" 即可触发浏览器的下载功能其中&#xff1a; attachment 表示附件&#xff0c;浏览器看到此字段&#xff0c;触发下载行为&#xff08;不同的浏览器下载行为有所区别&…