头像网站模板,怎么给wordpress加背景图,合肥市住房和城乡建设局官网,国家电网公司交流建设分公司网站给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集#xff0c;使得两个子集的元素和相等。
示例 1#xff1a;
输入#xff1a;nums [1,5,11,5]
输出#xff1a;true
解释#xff1a;数组可以分割成 [1, 5, 5] 和 [11] 。
示例 2使得两个子集的元素和相等。
示例 1
输入nums [1,5,11,5]
输出true
解释数组可以分割成 [1, 5, 5] 和 [11] 。
示例 2
输入nums [1,2,3,5]
输出false
解释数组不能分割成两个元素和相等的子集。
提示
1 nums.length 2001 nums[i] 100
思路类似leetcode139.单词拆分-CSDN博客如果数组和为奇数则一定无法分割如果为偶数则转换为背包是否能装满问题dp[j]表示容量j是否能凑成
public boolean canPartition(int[] nums) {int sum0;for(int i0;inums.length;i)sumnums[i];// 如果是奇数一定无法分割if(sum%2!0)return false;// 如果是偶数则转换为背包是否能装满问题dp[j]表示容量j是否能凑成boolean [] dpnew boolean[sum/21];dp[0]true;for(int i0;inums.length;i){//为保证每个物品用一次从后往前遍历背包for(int jdp.length-1;j0;j--){if(dp[j]jnums[i]dp.length){dp[jnums[i]]true;if(jnums[i]dp.length-1)return true;}}}return false;}