将整型数组分组,使两组中各元素加起来的和相等,求分组方法有多少种。
如:数组{1,1,1,1,2,2}有
a组({1,1,1,1})、b组({2,2});
a组({1,1,2})、b组({1,1,2});
a组({2,2})、b组({1,1,1,1})三种分组方法。
求算法思路。
将整型数组分组,使两组中各元素加起来的和相等,求分组方法有多少种。
如:数组{1,1,1,1,2,2}有
a组({1,1,1,1})、b组({2,2});
a组({1,1,2})、b组({1,1,2});
a组({2,2})、b组({1,1,1,1})三种分组方法。
求算法思路。
4 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答730 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
我觉得是这样,因为分成两组且和相等,那么和一定是sum/2,这里可以有个特判是否无解。
然后问题成了有多少组合和为sum/2的动态规划
dp(i,j) = dp(i-1,j-a(i))+dp(i-1,j)
解释为前i个元素和为j的组合有多少种
答案应该要/2
不知道对不对,感觉没问题,爪机码字欢迎指教。