在一个范围内的阵列中找到三胞胎
Finding Triplets in a array with sum within a range
可能的重复:
元组
给定n数字a[1..N]
和2其他整数L和H,我们必须计算元组(i,j,k)
的数量,以便L <= a[i] + a[j] + a[k] <= H
。可以比O(n^3)
更好吗?有任何建议/算法?
首先排序订单。
枚举a [i]和a [j],因此您可以使用二进制搜索来找到有多少a [k]满足l-(a [i] a [j])&lt; = a [k]&lt; = h - (a [i] a [j])。
整个算法成本O(n^2*log(n))
相关文章:
- OpenMP阵列性能较差
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 阵列必须使用大括号封闭的初始器进行初始化
- 没有从阵列<float>到阵列<int>的可行转换
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 从较小的阵列到较大的阵列的元素级转换
- 仅在大型阵列上出现合并排序分段错误
- 从阵列C++中删除重复项
- 阵列的大小在C++中是否灵活?
- 反转阵列中的正序列
- 具有可变尺寸的 C++ 2D 阵列
- 二维阵列的动态分配
- 在一个范围内的阵列中找到三胞胎