博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 416. Partition Equal Subset Sum
阅读量:4500 次
发布时间:2019-06-08

本文共 1100 字,大约阅读时间需要 3 分钟。

Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.

Note:Each of the array element will not exceed 100.The array size will not exceed 200.Example 1:Input: [1, 5, 11, 5]Output: trueExplanation: The array can be partitioned as [1, 5, 5] and [11].Example 2:Input: [1, 2, 3, 5]Output: falseExplanation: The array cannot be partitioned into equal sum subsets.

01背包问题,v = sum(nums[i])/2那么原问题可以转换为将n个物品装入容量为v的背包中能得到的最大值。如果最大值为v那么就返回true否则返回false

class Solution {public:    bool canPartition(vector
& nums) { int n = nums.size(); int v = accumulate(nums.begin(), nums.end(), 0); if (v & 1) return false; v /= 2; vector
dp(v+1); // dp[i][j] = max(dp[i-1][j],dp[i-1][j-a[i]] + w[i]); for (int i = 0; i < n; ++i) { for (int j = v; j >= nums[i]; --j) { dp[j] = max(dp[j-nums[i]] + nums[i], dp[j]); } } cout << dp[v] <

转载于:https://www.cnblogs.com/pk28/p/7699185.html

你可能感兴趣的文章
获取带参数的微信小程序二维码
查看>>
爬虫模块BeautifulSoup
查看>>
【模板】并查集
查看>>
RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例
查看>>
[WPF]实现密码框的密码绑定
查看>>
更新k8s镜像版本的三种方式
查看>>
WPF 获得当前输入法语言区域
查看>>
绑定元素属性改变不通知界面
查看>>
C#中使用反射获取结构体实例
查看>>
Spring bean的作用域和生命周期
查看>>
ado.net增删改查练习
查看>>
恩格尔系数
查看>>
纪检委,检察院的工资
查看>>
20135213 20135231 信息安全系统设计基础课程第一次实验报告
查看>>
BZOJ1419——Red is good(期望dp)
查看>>
Linux系统扩容根目录磁盘空间
查看>>
Java架构师书单
查看>>
二阶段冲刺第一天
查看>>
ArrayList删除特定元素的方法
查看>>
android 开发 View _15 导入一张图片将它裁剪成圆形 与 paint图层叠加处理详解
查看>>