416. 分割等和子集
文档和视频讲解:代码随想录(programmercarl.com)
状态:ac
用时:1h
思路:先计算数组总和,能被2整除才能进行分割。
dp[i][j]表示当前0到i区间内,能挑选一部分数的和恰好是j。则状态转移方程为:
同时注意状态转移方程中当nums[i]=j的时候,也是符合要求的,dp[i][j]直接取true。初始化dp[0][0]为false,因为候选数 nums[0] 是正整数,凑不出和为 0;第一行dp[0][nums[0]]=true,表示只有背包容量刚好等于这个数的时候满足。
dp[0][0]也可初始化为true,可以简化状态转移方程中对nums[i]=j的判定。
代码: