一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。

例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 = 1 。
给你一个数组 nums ,请你求出 nums 中每个 子集 的 异或总和 ,计算并返回这些值相加之 和 。

注意:在本题中,元素 相同 的不同子集应 多次 计数。

数组 a 是数组 b 的一个 子集 的前提条件是:从 b 删除几个(也可能不删除)元素能够得到 a 。

示例 1:

输入:nums = [1,3]
输出:6
解释:[1,3] 共有 4 个子集:

  • 空子集的异或总和是 0 。
  • [1] 的异或总和为 1 。
  • [3] 的异或总和为 3 。
  • [1,3] 的异或总和为 1 XOR 3 = 2 。
    0 + 1 + 3 + 2 = 6
    示例 2:

输入:nums = [5,1,6]
输出:28
解释:[5,1,6] 共有 8 个子集:

  • 空子集的异或总和是 0 。
  • [5] 的异或总和为 5 。
  • [1] 的异或总和为 1 。
  • [6] 的异或总和为 6 。
  • [5,1] 的异或总和为 5 XOR 1 = 4 。
  • [5,6] 的异或总和为 5 XOR 6 = 3 。
  • [1,6] 的异或总和为 1 XOR 6 = 7 。
  • [5,1,6] 的异或总和为 5 XOR 1 XOR 6 = 2 。
    0 + 5 + 1 + 6 + 4 + 3 + 7 + 2 = 28
    示例 3:

输入:nums = [3,4,5,6,7,8]
输出:480
解释:每个子集的全部异或总和值之和为 480 。

提示:

1 <= nums.length <= 12
1 <= nums[i] <= 20

class Solution{public:vector<vector<int>> s;void isSubset(vector<int>& nums,vector<int>& path,int pos){//计算出所有子集s.push_back(path);for(int i=pos;i<nums.size();i++){path.push_back(nums[i]);isSubset(nums,path,i+1);path.pop_back();}}int subsetXORSum(vector<int>& nums) {int sum=0;vector<int> path;isSubset(nums,path,0);for(int i=0;i<s.size();i++ ){int a=0;for(int j=0;j<s[i].size();j++){a=a^s[i][j];//计算每个子集的异或和}sum+=a;//计算子集之间的异或和的总和}return sum;}
}; 

找出所有子集的异或总和再求和相关推荐

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

    文章目录 1. 题目 2. 解题 1. 题目 一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果:如果数组为 空 ,则异或总和为 0 . 例如,数组 [2,5,6] 的 异或总和 为 2 ...

  2. python查找数列中重复数字_在数组中找出重复的数字(异或法)

    购买本课程后,可以加51CTO学院李宁老师官方交流群:550369460注意,该群只允许购买李宁老师课程的学员进行技术交流,加群时需要提供在51CTO购买李宁老师课程的订单编号(任何一个课程的订单编号 ...

  3. 找出重复两次的数--有且只有一个数字重复两次,其余都不重复

    问题描述:数字范围是0-99的整数,给出101个整数,其中只有一个是重复两次的数,找出这个数 分析:如果是有序的话,遍历一次就可以找出 方法一 :先排序,再遍历,遍历超过一次 方法二 :只是排序,排序 ...

  4. python步骤解析 给定一个整数数组和目标值_给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 例如给定nums = [2,7,11,15],target = 9...

    python解决方案 nums = [1,2,3,4,5,6] #假如这是给定的数组 target = 9 #假如这是给定的目标值 num_list = [] #用来装结果的容器 def run(nu ...

  5. 找出列表中重复数的下标

    例如有一个数字列表里有重复的数字 比如[12,234,45,21,12,456,33,25,33,47 ,12, 645, 23,12 ,4, 33], 求这个数字在列表中所有的下标(比如12,33所 ...

  6. MATLAB函数判断绝对素数,自定义函数,找出 以内所有素数(质数)并计算它们的和,matlab...

    C++,VC2008,问题是 编写一个函数,找出3~1000之内,所有的素数.求高手!我在线等 #include#includevoidf(){//筛法charprime[1001];memset(p ...

  7. 从数组中找出最大的两个数

    题目:从数组区间A[lo, hi]中找出最大的两个整数A[x1]和A[x2],要求元素比较的次数尽可能的少. 迭代版1: 如图所示,当整个扫描一遍数组A,找出最大的数x1后,再扫描一次数组剩下的除去x ...

  8. 打一句英文句子,找出其中最长的单词

    找出其中最长的单词,最主要的是要把输入的字符串转换为一个嵌套的数组,因为数组可以把你字符串中的空格自动给你省略掉.而且嵌套在里面的数组,可以用length来计算它的长度,就相当于你数出了那个单词的长度 ...

  9. 698. 划分为k个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。

    题目描述 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k ...

最新文章

  1. 计算机一级判断题2016,2016年12月计算机一级考试WPS判断题及答案
  2. java gson 工具类_gson工具类将Java类转换为json的使用
  3. Android SwipeRefreshLayout 官方下拉刷新控件介绍
  4. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( LTI 系统单位脉冲响应 | 卷积 | 卷积推导过程 )
  5. 2019河北高职计算机专科学校录取分数线,2019河北高考专科院校录取分数线_专科各院校投档线_一品高考网...
  6. python2安装pyyaml_Python3安装Pyyaml
  7. python语言的数据类型图解_Python基础——数据类型(图解+实例,非常详细!)
  8. DxOMark排名更新榜首易主 华为被拉下马:我还会回来的!
  9. Jmeter安装设置
  10. day10【过渡】分布式理论
  11. DataSource接口 Connection pooling(连接池
  12. BP神经网络简单应用实例,bp神经网络应用举例
  13. android webview支持webgl,Android WebView支持WebGL
  14. 《开店有讲究》读书笔记
  15. mumu模拟器命令安装apk
  16. 【云原生】K8S包管理(helm)
  17. print 设置纸张的高度_祝贺! 2020珠峰高程测量登山队成功登顶!用Python计算一张纸对折多少次会超过珠峰高度?...
  18. (动归三剑客)打家劫舍 (动归三剑客)
  19. 【强烈推荐】超详解Python-魔法函数(高级语法)
  20. python画二维温度云图_lammps温度云图

热门文章

  1. angularJS指令
  2. C和指针 第五章 习题
  3. DB层面上的设计 分库分表 读写分离 集群化 负载均衡
  4. 网页中相对布局和绝对布局的理解
  5. 今天实现了一个功能就是,树结点的拖动
  6. 我发现我对人类活动的认识开始有一点点变化了
  7. SQL语法用like %或in时Parameters要怎么用才能避免SQL Injection的问题
  8. 服务器更换主板后系统无法启动
  9. k8s集群PHP环境使用
  10. 如何卸载windows自带的输入法