N^3 log N
public static int FourSumFast(int[] a){
Arrays.sort(a);
int N = a.length;
int cnt = 0;
for(int i=0;i<N;i++)
for(int j=i+1;j<N;j++)
for(int z=j+1;z<N;z++)
if(BinarySearch.rank(-a[i]-a[j]-a[z], a) > z)
cnt++;
return cnt;
}
本文介绍了一种求解四个数相加等于特定目标值的问题的高效算法实现。该算法首先对输入数组进行排序,然后使用三层循环遍历数组,并借助二分查找(Binary Search)来寻找第四个数,确保其不重复且符合要求。此方法的时间复杂度为N^3logN。
409

被折叠的 条评论
为什么被折叠?



