思路
问题转化:给定一个数组,是否能从数组中选出一个子集,使得其和恰好为数组总和的一半。(这样没被选中的那一半一定也是 数组总和的一半,两者的和相等)
1.问什么定义什么
dpi,j 代表 是否能从前i个数中选出一个子集使得其和恰好为j
dpi,j∈{True,False}
P4096.分割等和子集
LeetCode 416. 分割等和子集
题目描述
给定一个只包含正整数的非空数组 nums。
请判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
如果可以分割,输出 true;否则输出 false。
输入描述
输入一行正整数,表示数组 nums 中的元素,整数之间用空格分隔。
输出描述
如果可以将数组分割成两个元素和相等的子集,输出true,否则输出false
样例 1
输入
1 5 11 5
输出
true
样例解释
数组可以分割成 [1, 5, 5] 和 [11]。
两个子集的元素和均为 11,因此输出 true。
样例 2
输入
1 2 3 5
输出
false
样例解释
数组不能分割成两个元素和相等的子集,因此输出 false。
数据范围
1<=nums.length<=200
1<=nums[i]<=100