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

代码随想录算法训练营第 35 天 | LeetCode 416. 分割等和子集

代码随想录算法训练营

Day35 代码随想录算法训练营第 35 天 | LeetCode 416. 分割等和子集


目录

  • 代码随想录算法训练营
  • 前言
    • LeetCode416. 分割等和子集
  • 一、LeetCode416. 分割等和子集
    • 1.题目链接
    • 2.思路
    • 3.题解


前言

LeetCode416. 分割等和子集

讲解文档


一、LeetCode416. 分割等和子集

1.题目链接

LeetCode416. 分割等和子集

2.思路

(1)为什么能用01背包:每个元素只能用一次
(2)子集是背包----背包最大容量:元素和/2
(元素和如果是偶数,不可能分成两个元素和相等的子集)
(3)物品重量:元素数值;物品价值:元素数值
(4)dp[j] 容量为j时,最大的价值之和
(5)判定两个子集元素和相等:
dp[sum/2]=sum/2
(装不满的情况:dp[7]=6 现在自己里面元素和还没有到sum/2,也就是7,但是剩下的任何元素放进去都会超出容量)

3.题解

class Solution {
public:bool canPartition(vector<int>& nums) {int n = nums.size();// 元素只用一次,说明01背包// dp[i][j]  0-i的范围内 j是容量 dp表示最大价值// 背包最大的容量是sum/2,如果价值为sum/2则说明正好是的自己元素和相等// 元素数值看作物品容量和价值int dp[100001] = {0};int sum = accumulate(nums.begin(), nums.end(), 0);if (sum % 2)return false;int target = sum / 2;for (int i = 0; i < n; i++) {for (int j = target; j >= nums[i]; j--) {dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);}}return dp[target] == target;}
};
http://www.lryc.cn/news/422957.html

相关文章:

  • 伪国企是指的什么?
  • Transformer在量化投资中的应用
  • a++ 和 ++a
  • Python配置文件格式——INI、JSON、YAML、XML、TOML
  • The First项目报告:Web3人生模拟器,DegenReborn带你重开币圈
  • 燃气经营企业从业人员考试真题及答案
  • 白骑士的Matlab教学进阶篇 2.1 数据可视化
  • 2024年8月 | 涉及侵权、抄袭洗稿违规行为公示
  • 操作系统快速入门(四)
  • 前缀异或优化
  • AI学习指南深度学习篇-卷积神经网络中的正则化和优化
  • AutoGen Studio 本地源码构建
  • 医疗陪诊系统源码详解:在线问诊APP开发的技术要点
  • VSCode编译多个不同文件夹下的C++文件
  • 【安卓】连接真机和使用通知
  • CSS3下拉菜单实现
  • Mysql8.3.0排序导致分页数据错乱
  • 漏洞复现-Cacti命令执行漏洞 (CVE-2022-46169)
  • 【Ajax使用说明】Ajax、Axios以及跨域
  • IIS网站搬家工具WebDeploy(把网站迁移去另一台服务器)
  • SQL Server 2022的游标
  • 「11月·香港」第三届人工智能、人机交互和机器人国际学术会议(AIHCIR 2024)
  • 【redis】springboot 用redis stream实现MQ消息队列 考虑异常ack重试场景
  • 初识IDEA
  • zigbee笔记:十、ZStack(2.3.0-1.4.0)的OSAL使用分析
  • SpringBoot响应式编程(1)Reactor核心
  • Java后端处理前端字符串与 JSON 数据:安全拼接与转义技巧
  • 一文搞懂bfs,dfs和高级图算法
  • 【Rust光年纪】Rust异步编程利器:异步DNS、高性能Web服务器一网打尽
  • 04学生管理系统(栈)