给你一个整数数组 nums
和一个整数 k
。
你的任务是将 nums
分成 k
个非空的 子数组 。对每个子数组,计算其所有元素的按位 XOR 值。
返回这 k
个子数组中 最大 XOR 的 最小值 。
示例 1:
输入: nums = [1,2,3], k = 2
输出: 1
解释:
最优划分是 [1]
和 [2, 3]
。
1
。2 XOR 3 = 1
。子数组中最大的 XOR 是 1,是最小可能值。
示例 2:
输入: nums = [2,3,3,2], k = 3
输出: 2
解释:
最优划分是 [2]
、[3, 3]
和 [2]
。
2
。3 XOR 3 = 0
。2
。子数组中最大的 XOR 是 2,是最小可能值。
示例 3:
输入: nums = [1,1,2,3,1], k = 2
输出: 0
解释:
最优划分是 [1, 1]
和 [2, 3, 1]
。
1 XOR 1 = 0
。2 XOR 3 XOR 1 = 0
。子数组中最大的 XOR 是 0,是最小可能值。
提示:
1 <= nums.length <= 250
1 <= nums[i] <= 109
1 <= k <= n