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;  
}
相关推荐
EanoJiang1 小时前
查找
算法
海码0073 小时前
【Hot 100】 146. LRU 缓存
数据结构·c++·算法·链表·缓存·hot100
今天也是元气满满的一天呢3 小时前
java学习之数据结构:一、数组
java·数据结构·学习
钢铁男儿4 小时前
C# 方法(控制流和方法调用)
算法
heyCHEEMS4 小时前
最大子段和 Java
java·开发语言·算法
我是一只鱼02234 小时前
LeetCode算法题 (设计链表)Day16!!!C/C++
数据结构·c++·算法·leetcode·链表
蒟蒻小袁5 小时前
力扣面试150题--二叉树的最大深度
算法·leetcode·面试
bj32815 小时前
树的同构问题--Python
开发语言·python·算法
八股文领域大手子5 小时前
单机 vs 分布式:Java 后端限流的选择题
java·开发语言·数据结构·算法·spring
keep intensify7 小时前
【数据结构】--- 双向链表的增删查改
c语言·数据结构·算法·链表