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

动态规划:分割等和子集

参考资料:代码随想录

题目链接:. - 力扣(LeetCode)

这道题是01背包问题的抽象,这道题的难点在于怎么绕明白遍历顺序是从后往前。

题目中给的nums数组,以nums=[1,5,11,5]为例,可以分析为有4个物品,每个物品的重量为weight=[1,5,11,5],每个物品的价值为value=[1,5,11,5]

最大容量为:(1+5+11+5)/2

1.确定dp数组含义

重量从0到maxWeight,分别能装的最大价值

2.初始化dp数组

全部初始化为0

3.确定遍历顺序

只能选取一次,从后向前

4.确定递推公式

class Solution {public boolean canPartition(int[] nums) {//求最大重量int sum = 0;for(int num:nums){sum+=num;}if(sum%2 != 0) return false;int maxWeight = sum/2;//1.确定dp数组含义int[] dp = new int[maxWeight+1];//2.初始化dp数组//3.确定遍历顺序for(int i = 0;i < nums.length;i++){for(int j = maxWeight;j >=nums[i] ;j--){//4.确定递推公式if(j >= nums[i]){dp[j] = Math.max(dp[j],dp[j-nums[i]]+nums[i]);}}}return dp[maxWeight] == maxWeight;}
}

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

相关文章:

  • 踩坑——纪实
  • java实现websocket的五种方式(mark下)
  • 网络安全技术心得体会
  • 光耦合器的特性和应用概述
  • 工作干到抑郁了,要不要辞职?
  • Vs Code插件位置:
  • 521源码-免费源码-子比主题最新版7.6绕授权破解完整教程
  • 前端基础入门三大核心之HTML篇:Webpack、Vite、Grunt、Gulp的场景与实战运用
  • java面试框架篇(Spring常见问题、SpringBoot、SpringMVC、mybatis经典问题、SpringCloud组件)
  • HarmonyOS之ArkUI布局设计常见细节
  • 元宇宙虚拟线上会议,可应用于哪些行业和领域?
  • 【C++刷题】优选算法——递归第二辑
  • 【GO基础】1. Go语言环境搭建
  • Py之llama-parse:llama-parse(高效解析和表示文件)的简介、安装和使用方法、案例应用之详细攻略
  • Python库之Scrapy的高级用法深度解析
  • Rust Tarui 中的 Scrcpy 客户端,旨在提供控制安卓设备的鼠标和按键映射,类似于游戏模拟器。
  • 【shell】脚本练习题
  • 微信小程序uniapp+django洗脚按摩足浴城消费系统springboot
  • 超链接的魅力:HTML中的 `<a>` 标签全方位探索!
  • 与优秀者同行,“复制经验”是成功的最快捷径
  • MobaXterm使用私钥远程登陆linux
  • Java设计模式(23种设计模式 重点介绍一些常用的)
  • JVM(5):虚拟机性能分析和故障解决工具概述
  • vue3插槽solt 使用
  • 正则项学习笔记
  • Django自定义模板标签与过滤器
  • k8s集群安装后CoreDNS 启动报错plugin/forward: no nameservers found
  • AI图片过拟合如何处理?答案就在其中!
  • 0基础如何进入IT行业
  • 一键批量提取TXT文档前N行,高效处理海量文本数据,省时省力新方案!