分割等和子集,就是在数组里找几个数的和,还有剩的数的和相等
分析一下,就是找几个数的和为总数组和的一半,数组和为奇数不行,maxNum>sum/2也不行,一个数也不行,
找数组和为总数组的一半,用动态规划,dp[i][j],就是指在0-i这个范围里,使数的和为j最后返回的结果是dp[n-1][j],就是指n-1个数的和为数组和的一半是true还是false
然后再看状态转移方程:首先就是边界,dp[i][0]是指和为0,那肯定都是true,因为可以都不选,再就是dp[0][nums[0]]也是true,状态转移方程:
j>nums[i]:dp[i][j]=dp[i-1][j]||dp[i-1][j-nums[i]]
j<nums[i]:dp[i][j]=dp[i-1][j];只能不选
分析一下,就是找几个数的和为总数组和的一半,数组和为奇数不行,maxNum>sum/2也不行,一个数也不行,
找数组和为总数组的一半,用动态规划,dp[i][j],就是指在0-i这个范围里,使数的和为j最后返回的结果是dp[n-1][j],就是指n-1个数的和为数组和的一半是true还是false
然后再看状态转移方程:首先就是边界,dp[i][0]是指和为0,那肯定都是true,因为可以都不选,再就是dp[0][nums[0]]也是true,状态转移方程:
j>nums[i]:dp[i][j]=dp[i-1][j]||dp[i-1][j-nums[i]]
j<nums[i]:dp[i][j]=dp[i-1][j];只能不选
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板 点赞 评论 收藏
分享
点赞 评论 收藏
分享
