异或算法在算法求解中的妙用

(经典的异或技巧)数组中只出现一次的数字 (两种方法)

  • 如果一个序列除了某个数出现一次(奇数次)外,其他数均出现两次(偶数次),最终全部异或的结果会是这个出现一次(奇数次)的数;

  • 如果一个序列所有的数均出现两次(偶数次),最终全部异或的结果会是 0;

  • 如果一个序列除了某 2 个数出现一次(奇数次)外,其他数均出现两次(偶数次),最终全部异或的结果一定不为 0;

class Solution{
public:void FindNumsAppearOdds(vector<int> nums, int *num1, int *num2){if (nums.size() < 2) return;int myxor = accumulate(nums.begin(), nums.end(), 0, [](int x, int y) { return x^y; });int flag = 1;while ((myxor & flag) == 0) flag <<= 1;*num1 = myxor;*num2 = myxor;for (int i = 0; i < nums.size(); ++i)if (flag & nums[i]) *num1 ^= nums[i];else *num2 ^= nums[i];}
}

使用异或解题 —— 序列中仅出现一次的两个数相关推荐

  1. 在一个长度为n(n 1000)的整数序列中,判断是否存在某两个元素之和为k。

    在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k. 输入 第一行输入序列的长度n和k,用空格分开. 第二行输入序列中的n个整数,用空格分开. 输出 如果存在某两个元 ...

  2. 在有序数字中寻找和为k的两个数 O(n)

    思路: 分别在有序数字串的两头向中间遍历 bool findTarget(vector<int> &nums,int k) {for(i=0,j=nums.size()-1;i&l ...

  3. 在一个数组中找 差值最大的两个数 差值最小的两个数 推广到 点对

    先求差值最大的: 1.找出最大值和最小值 然后做差,  每次比较相邻的两个数(比如先0,1  然后2,3),然后每次比较记录下最大和最小的差值,可以比较1.5N次得到结果,和分为奇数偶数位比较一样的复 ...

  4. 已定义了两个整数变量A和B,完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两数均加1后存入原变量(3)若两个数均为偶数,则两个变量均不改变。

    已定义了两个整数变量A和B,试编写程序完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中: (2)若两个数均为奇数,则将两数均加1后存入原变量: (3)若两个数均为偶数,则两 ...

  5. Deep-Learning-with-Python] 文本序列中的深度学习

    将文本数据处理成有用的数据表示 循环神经网络 使用1D卷积处理序列数据 深度学习模型可以处理文本序列.时间序列.一般性序列数据等等.处理序列数据的两个基本深度学习算法是循环神经网络和1D卷积(2D卷积 ...

  6. metaProdigal:宏基因组序列中的基因和翻译起始位点预测

    文章目录 metaProdigal:宏基因组序列中的基因和翻译起始位点预测 热心肠日报 摘要 动机 Motivation 结果 Results 可用性 Availability 主要结果 表1. 大肠 ...

  7. arrays中copyof复制两个数组_异或的魅力!图解「数组中两个数的最大异或值」

    今天分享的题目来源于 LeetCode 第 421 号问题:数组中两个数的最大异或值.在 异或 这个知识点里面属于一个中高难度的题目. 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, ...

  8. 【C语言练习】【指针】定义一个函数move,实现将长度为n、名为a的序列中,各元素依次顺序循环,右移m个位置

    题目 下列函数move的功能是:实现将长度为n.名为a的序列中,各元素依次顺序循环,右移m个位置. 例如:对于序列a=(1,3,5,7,9,11),若m=2,则循环右移后的结果为a=(9,11,1,3 ...

  9. 文献记录(part79)--光学影像序列中基于多视角聚类的群组行为分析

    学习笔记,仅供参考,有错必纠 光学影像序列中基于多视角聚类的群组行为分析 摘要 群组行为分析是光学影像序列分析中的一项重要课题, 在近年来引起了人工智能领域研究人员的广泛关注. 与行人个体相比, 群组 ...

最新文章

  1. Makefile 使用总结
  2. 双指针--Codeforces Round #645 (Div. 2) d题
  3. threadlocals_如何使用ThreadLocals射击自己
  4. [Android]在Dagger 2中使用RxJava来进行异步注入(翻译)
  5. 欧几里得算法以及推论
  6. 计算机安全 原理 资料_2019年山东地区计算机考研汇总分析
  7. 蔡高厅老师 - 高等数学阅读笔记 - 02 - 极限(06 、07、08、09、10、11、12)
  8. SSL请求trustStore的两种注册方式
  9. python中await async_[转载]python中的await和async
  10. 为什么将iostream :: eof放在循环条件(即`while(!stream.eof())`)内?
  11. linux 下 maven 安装配置
  12. UIFont 字体族
  13. 华为荣耀黑科技,打造震撼AI智能机
  14. 复合型网络拓扑结构图_网络拓扑结构图知识
  15. XSS labs 闯关大合集
  16. Typec手机有线网卡网线转网口转接口快充方案
  17. YOLO v5训练时报fitness错误,求解
  18. 连接重置Connection reset异常
  19. java的正确学习姿势
  20. php 正则匹配座机号、手机号

热门文章

  1. commons-fileupload 上传图片路径到mysql_上传图片到服务器并将图片路径保存到数据库...
  2. android百度定位代码,android开发:百度地图及定位的演示代码
  3. Spring+hibernate无法执行更新操作
  4. Scala文件内容生成本地文件
  5. Java设计模式(详细待续)(转)
  6. Keras——用Keras搭建线性回归神经网络
  7. SCI从入门到精通(二)——如何阅读文献
  8. php入门代码 基础慕课,php基础入门
  9. 用maven按环境打包SpringBoot的不同配置文件
  10. IO流(八)之InputStreamReader类与OutputStreamWriter类