一道编程题 求算法思路.给出n(2

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 08:55:43
一道编程题 求算法思路.给出n(2

一道编程题 求算法思路.给出n(2
一道编程题 求算法思路.
给出n(2

一道编程题 求算法思路.给出n(2
因为n比较小,此题最优的解法是双向搜索
做法如下(n=20):
枚举前十个数的放入集合的放法,共3^10种,以两个集合的元素差为key,两个集合的元素和为value,存入哈希表
枚举后十个数的放入集合的放法,以两个集合的元素差为key,查哈希表,这样能查到对应的前十个数的分配方法,就知道总和了
这是最优解法,复杂度为3^(n/2)
这题还有一种经典的动态规划的解法,叫“双塔问题”,复杂度为w*n,w为所有数的总和