假设我们有一个数组1 2 4。我们将此数组表示为多项式f(x) = x^1 + x^2 + x^4。我们看一下f(x)^2,即
x^2 + 2 x^3 + x^4 + 2 x^5 + 2 x^6 + x^8
写成n数组的两个元素之和的方式数是 的系数x^n,这通常是正确的。FFT 为我们提供了一种有效地乘以多项式的方法*,所以基本上我们所做的是计算f(x)^3并查看目标数 S 的系数。
- 该算法不能解决 3SUM 问题的原因是 FFT 乘法的效率取决于生成的多项式的次数,因此数组值位于一个很小的范围内。