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

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

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:

  1. Each of the array element will not exceed 100.
  2. 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.

 

题意:

给定一个数组,问该数组能否分成两个非空子集,使得这两个非空子集的元素之和相同

 

思路:

观察例1,sum=22, sum为偶数有可能partition两个子集

观察例2,sum=11,sum 为奇数不可能partition两个子集

这是一个背包问题,背包容量为数组中元素和的一半+1。这样只要看是否有元素正好填满背包即可。但每个元素只能用一次,所以在尝试放一个元素时还要避免对尝试放其他位置时对自己的影响。所以尝试放一个元素到背包的时候,要从容量最大的开始。

 

代码:

1 class Solution { 2     public boolean canPartition(int[] nums) { 3         int sum = 0; 4         for(int i = 0; i < nums.length; i++){ 5             sum += nums[i]; 6         } 7         if(sum % 2 != 0) return false; 8          9         sum = sum / 2;10         11         int[]dp = new int[sum + 1];12         dp[0] = 1;13         for(int i = 0; i< nums.length; i++){14             for(int j = sum; j>=nums[i]; j--){15                dp[j] = dp[j]|dp[j-nums[i]];16             }17         } 18         return dp[sum] != 0;19     }20 }

 

转载于:https://www.cnblogs.com/liuliu5151/p/9075037.html

你可能感兴趣的文章
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
我最喜欢的 5 个 Gedit 插件
查看>>
OOoLatex:在 OpenOffice.org 中拔出 Latex 公式
查看>>
linu学习第二天:文件系统相关操作
查看>>
执行了的程序,才是你的程序.
查看>>
在AxureRP8中实现广告文字滚动效果
查看>>
jQuery获取CSS样式中的颜色值的问题
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
Sqlite文件在ubunut的查看
查看>>
表单校验之datatype
查看>>
python第六篇文件处理类型
查看>>
kettle 数据库连接失败
查看>>
ListView失去焦点选中行不能高亮显示的问题解决
查看>>
# jsp及servlet学习笔记
查看>>
Kconfig详解
查看>>
(四)hadoop系列之__hadoop搭建(单机配置)
查看>>