中等
给你一个整数数组 nums 和一个整数 target。
你可以从 nums 中移除 任意 数量的元素(可能为零)。
返回使剩余元素的 按位异或和 等于 target 所需的 最小 移除次数。如果无法达到 target,则返回 -1。
空数组的按位异或和为 0。
示例 1:
输入: nums = [1,2,3], target = 2
输出: 1
解释:
- 移除
nums[1] = 2后剩余[nums[0], nums[2]] = [1, 3]。 [1, 3]的异或和为 2,等于target。- 无法在少于 1 次移除的情况下达到异或和 = 2,因此答案为 1。
示例 2:
输入: nums = [2,4], target = 1
输出: -1
解释:
无法通过移除元素来达到 target。因此,答案为 -1。
示例 3:
输入: nums = [7], target = 7
输出: 0
解释:
所有元素的异或和为 nums[0] = 7,等于 target。因此,无需移除任何元素。
提示:
1 <= nums.length <= 400 <= nums[i] <= 1040 <= target <= 104