O(NlogN)找到3个数字,这些数字在数组中具有任意T的总和

Dr.*_*ray 16 algorithm

给定一个整数数组A,找到任何三个与任何给定的T相加.

我在一些在线帖子上看到了这一点,声称它有一个O(NlogN)解决方案.

对于2个数字,我知道散列表可以帮助O(N),但对于3个数字,我找不到一个.

我也觉得这个问题听起来很熟悉一些难题,但不记得这个名字,因此不能谷歌.(虽然最坏的显然是O(N ^ 3),并且对于2个数字的解,它实际上是O(N ^ 2))

它并没有真正解决现实世界中的任何问题,只是让我感到烦恼.

任何的想法?

Nic*_*kis 14

我认为你的问题等同于3SUM问题.