给你一个长度为 n 的整数数组 nums,其中每个元素都是非负整数。
选择 两个 子序列 nums(它们可以为空并且 允许重叠),每个子序列保留原始元素的顺序,并且定义:
X 是第一个子序列中所有元素的按位 XOR。Y 是第二个子序列中所有元素的按位 XOR。返回 最大 的 X XOR Y 值。
子序列 是通过删除某些或不删除任何元素,而不改变剩余元素的顺序,从另一个数组派生出的数组。
注意:一个 空 子序列的 XOR 为 0。
示例 1:
输入: nums = [1,2,3]
输出: 3
解释:
选择子序列:
[2],其 XOR 为 2。[2,3],其 XOR 为 1。然后,两个子序列的 XOR 为 2 XOR 1 = 3。
这是从任何两个子序列中可以得到的最大 XOR 值。
示例 2:
输入: nums = [5,2]
输出: 7
解释:
选择子序列:
[5],其 XOR 为 5。[2],其 XOR 为 2。然后,两个子序列的 XOR 为 5 XOR 2 = 7。
这是从任何两个子序列中可以得到的最大 XOR 值。
提示:
2 <= nums.length <= 1050 <= nums[i] <= 109