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;  
}
相关推荐
happymaker06261 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊1 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
烬羽1 小时前
从零理解树与二叉树:用 JS 带你手撕遍历和递归
javascript·数据结构
YHL2 小时前
🚀从零理解树与二叉树 —— 概念、实现与遍历
前端·javascript·数据结构
JieE2122 小时前
JS 到底有多少种数据类型?从ECMA规范到内存本质,一文彻底搞懂
javascript·数据结构·面试
努力努力再努力wz2 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
八解毒剂3 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
运行时记录3 小时前
别再手动写提示词了 — SkillOpt 让技能文档自己进化
算法
啦啦啦啦啦zzzz3 小时前
算法总结(二分查找、双指针)
c++·算法
qq_8573058194 小时前
python语法
开发语言·python·算法