是否有可能在给定数组中找到O(n)时间内的所有三元组?

时间:2014-02-03 16:09:59

标签: arrays algorithm find triplet

给定一组数字,找到满足给定条件的所有三元组。

条件:a[i] < a[j] < a[k]其中I < j < k

可以在O(n)时间内解决这个问题吗?

这不是家庭作业!!!

1 个答案:

答案 0 :(得分:2)

输出的大小(最坏情况)是复杂性的下限。

由于可能存在O(n ^ 3)个三元组,因此复杂度不能为O(n)。

例如,如果数组从最低到最高排序,你将有n选择3个这样的三元组,其顺序为n ^ 3.

如果问题涉及找到三元组的数字,这是我看到的最有效的解决方案:

https://cs.stackexchange.com/questions/7409/count-unique-increasing-subsequences-of-length-3-in-on-log-n