标签: arrays algorithm find triplet
给定一组数字,找到满足给定条件的所有三元组。
条件:a[i] < a[j] < a[k]其中I < j < k。
a[i] < a[j] < a[k]
I < j < k
可以在O(n)时间内解决这个问题吗?
这不是家庭作业!!!
答案 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