Answers:
-SUM可以如下更快地求解。
对于偶数:计算k / 2个输入元素的所有和的排序列表检查S是否同时包含数字和。该算法以时间运行。
对于奇数:计算(k − 1 )/ 2个输入元素的所有和的排序列表对于每个输入元件一个,检查是否小号同时含有X和- 一个- X,对于一些数X。(第二步本质上是3SUM 的时间算法。)该算法以时间运行。
在线性决策树模型的某个弱但自然的限制条件下,对于任何常数,这两种算法都是最优的(可能为偶数且大于时的对数因子除外)。有关更多详细信息,请参见:
尼尔·艾伦(Nir Ailon)和伯纳德·查泽尔(Bernard Chazelle)。 线性简并性测试的下界。 JACM 2005。
杰夫·埃里克森。 线性可满足性问题的下界。 CJTCS 1999。
这里有一些简单的观察。
对于,您可以通过扫描阵列零来在Θ (n )时间内完成。对于k = 2,您无需在Θ (n log n )时间内散列就可以做到这一点。对阵列进行排序,然后对其进行扫描。对于每一个元素我为做一个二进制搜索- 我。这导致Θ (n log n )的总复杂度。对于k = n的情况,可以在Θ (n )中进行 通过累积数组并检查结果来确定时间。
有关更多参考,请参见3SUM的“开放问题项目”页面。
见http://arxiv.org/abs/1407.4640
解决rSUM问题的新算法Valerii Sopin
抽象:
在某些情况下,提出了一种确定的算法来解决任何自然r的rSUM问题,并对时间复杂度进行了二次校正。就所使用的存储器量而言,所获得的算法还具有次二次阶。所获得算法的思想不是基于整数,而是二进制二进制系统中这些数字的k∈N个连续位。可以看出,如果整数之和等于零,则这些数字的任意k个连续位表示的数字之和必须足够“接近”于零。这样就可以丢弃数字,而这些数字并不能建立解决方案。
这是本期的新内容。