代码随想录训练营 dp
- 416. 🌸分割等和子集🌸
- code
416. 🌸分割等和子集🌸
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
code
//看起来风轻云淡的一道题,实际上花了我三个小时时间。
func canPartition(nums []int) bool {sum:=0for _,num:= range nums{sum +=num}// 求和if sum %2 ==1{ return false}//判断奇偶target := sum/2 dp :=make([]int, target +1)//dp初始化for _,num:=range nums{//遍历物品for j:=target;j>=num;j--{//倒序 01背包if dp[j] < dp[j-num]+num{dp[j] = dp[j-num]+num}}}return dp[target] == target //判断dp过程中是否存在有target这个和 即可
}