我们有一个包含 N 个数字的数组。所有数字都在 1-k 之间。
问题是如何找到找到最频繁的三元组的最佳方法。
我解决这个问题的方法是:
假设输入类似于 { 1, 2, 3, 4, 1, 2, 3, 4}
首先搜索三元组(1,2,3)的计数,从数组中的第二个元素开始,直到数组的末尾。现在我们将计数为 1。现在从 { 2, 3, 4) 开始并搜索数组。
对于每个三元组,我们扫描数组并找到计数。像这样我们运行数组 n-1 次。
这样我的算法以 n*n 时间复杂度的顺序运行。有没有更好的方法
这个问题。?