LeetCode 1863.找出所有子集的异或总和再求和

题解

根据上述图可以根据二进制运算获取所有的子集,但是可以使用二进制获取所有子集需要有题目的这一句话才能够使用注意:在本题中,元素相同的不同子集应多次计数。

也就是对于{2,2,3,4,5}的子集不会简化成{2,3,4,5}

复制代码
public static int subsetXORSum(int[] nums) {  
    int n = nums.length, sum = 0;  
    for (int i = 0; i < (1 << n); i++) {  
        int temp = 0;  
        for (int j = 0; j < n; j++) {  
            if (((i >> j) & 1) == 1) {  
                temp ^= nums[j];  
            }  
        }  
        sum += temp;  
    }  
    return sum;  
}
相关推荐
I_LPL11 分钟前
hot100 栈专题
算法·
此生只爱蛋18 分钟前
【数据结构】红黑树
数据结构
2401_8795034123 分钟前
C++中的观察者模式变体
开发语言·c++·算法
阿贵---42 分钟前
C++中的备忘录模式
开发语言·c++·算法
setmoon2141 小时前
C++中的观察者模式实战
开发语言·c++·算法
2403_835568471 小时前
C++代码规范化工具
开发语言·c++·算法
tankeven1 小时前
HJ138 在树上游玩
c++·算法
北顾笙9801 小时前
测开准备-day01数据结构力扣
数据结构
lihihi2 小时前
P1209 [USACO1.3] 修理牛棚 Barn Repair
算法
博界IT精灵2 小时前
栈在表达式求值中的应用(暂时看到视频3.3.2_1的25min19秒)
数据结构