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