题目
一个数组的 异或总和 定义为数组中所有元素按位 XOR
的结果;如果数组为 空 ,则异或总和为 0
。
- 例如,数组
[2,5,6]
的 异或总和 为2 XOR 5 XOR 6 = 1
。
给你一个数组 nums
,请你求出 nums
中每个 子集 的 异或总和 ,计算并返回这些值相加之 和 。
注意:在本题中,元素 相同 的不同子集应 多次 计数。
数组 a
是数组 b
的一个 子集 的前提条件是:从 b
删除几个(也可能不删除)元素能够得到 a
。
示例1:
1 | 输入:nums = [1,3] |
示例2:
1 | 输入:nums = [5,1,6] |
示例2:
1 | 输入:nums = [3,4,5,6,7,8] |
提示:
1 <= nums.length <= 12
1 <= nums[i] <= 20
解法
解法一:
Java
1 | public int subsetXORSum(int[] nums) { |