給定乙個只包含正整數的非空陣列。是否可以將這個陣列分割成兩個子集,使得兩個子集的元素和相等。
注意:每個陣列中的元素不會超過 100
陣列的大小不會超過 200
示例 1:
輸入: [1, 5, 11, 5]
輸出: true
解釋: 陣列可以分割成 [1, 5, 5] 和 [11].
示例 2:
輸入: [1, 2, 3, 5]
輸出: false
解釋: 陣列不能分割成兩個元素和相等的子集.
思路:分成兩個等和子集,即找出一些數,使得它們的和為總和sum的一半。進一步理解為:給定乙個體積為sum / 2的揹包。給定若干個物品,每個物品都有體積。是否能找出若干個物品將揹包填滿?
**如下:
class
solutionif(
(sum &1)
==1)return
false
;//奇數肯定不滿足
//dp[i]表示是否能找到體積和為i的物品放入揹包中
boolean
dp =
newboolean
[sum +1]
; dp[0]
=true
;//除了體積為0之外,其他全為false
for(
int x : nums)
return dp[sum /2]
;}}
分割等和子集
給定乙個只包含正整數的非空陣列。是否可以將這個陣列分割成兩個子集,使得兩個子集的元素和相等。示例 1 輸入 1 5,11 5 輸出 true 解釋 陣列可以分割成 1,5,5 和 11 示例 2 輸入 1 2,3 5 輸出 false 解釋 陣列不能分割成兩個元素和相等的子集.思路 1.首先求陣列總...
分割等和子集
給定乙個只包含正整數的非空陣列。是否可以將這個陣列分割成兩個子集,使得兩個子集的元素和相等。注意 每個陣列中的元素不會超過 100 陣列的大小不會超過 200 示例 1 輸入 1,5,11,5 輸出 true 解釋 陣列可以分割成 1,5,5 和 11 示例 2 輸入 1,2,3,5 輸出 fals...
分割等和子集 leetcode416
給定乙個只包含正整數的非空陣列。是否可以將這個陣列分割成兩個子集,使得兩個子集的元素和相等。注意 每個陣列中的元素不會超過 100 陣列的大小不會超過 200 示例 1 輸入 1,5,11,5 輸出 true 解釋 陣列可以分割成 1,5,5 和 11 示例 2 輸入 1,2,3,5 輸出 fals...