能否以线性时间O(n)或O(nlogn)计算

时间:2013-02-19 03:01:04

标签: algorithm sorting

我试图在O(n)或O(n log n)中找到一种方法,以便在以下情况下返回输出。如果我有一个包含n个元素的集合,我需要找到集合中的最小数字集合,这些数字与给定的数字相加。

例如, A = [0,9,1,2,5,4],如果i给出q = 6,那么我可能的组合是:(2 + 4),(1 + 5)并且如果没有适当的子集则应该返回null找到了吗?这不是一个功课问题,我只是想学习好的编程方法。

1 个答案:

答案 0 :(得分:1)

一般问题是http://en.wikipedia.org/wiki/Subset_sum_problem

据我们所知,没有多项式速度算法可以解决问题,并且认为不存在。但是,存在一些好的近似方法。