在一个范围内的阵列中找到三胞胎

Finding Triplets in a array with sum within a range

本文关键字:阵列 三胞胎 范围内 一个      更新时间:2023-10-16

可能的重复:
元组

给定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))