我有以下问题:给定一个整数数组(最大大小为 50000),我必须找到最大 X 使得,
X = a[p] ^ a[p+1] ^ ... ... ^ a[q] for some p,q (p<=q)
我还必须找到 X 的最小值。
我试过这个过程,
sum[i] = a[0] ^ a[1] ^ ... ... ^ a[i] for some i .
我在 O(n) 中预先计算了它,并且
那么一些 X 的值p,q(p<=q)
是 ,
X = sum[q] ^ sum[p-1]
MaxAns = Max of X for every pair of p,q (p<=q)
MinAns = Min of X for every pair of p,q (p<=q)
但是这个过程是O(n^2)。
如果没有 O(n^2) 算法,我怎么能做到这一点,效率更高?