当前位置: 首页 > news >正文

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

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

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

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

  • 如果一个序列所有的数均出现两次(偶数次),最终全部异或的结果会是 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];
    }
}

转载于:https://www.cnblogs.com/mtcnn/p/9423637.html

相关文章:

  • 为什么我从来不无偿加班?你也不应该! 【转载】
  • MySQL主从同步配置(Ubuntu)
  • C语言学习笔记--指针和数组的关系
  • css3样式二
  • 手机端轻应用模拟原生的下拉刷新效果(JavaScript)
  • 樱花漫地集于我心,蝶舞纷飞祈愿相随---总结 顕出:void-sampling 显示:void-sampling...
  • node.js基础 1之简单的nodejs模块
  • Xcode 8 支持 iOS 7 真机解决过程记录
  • ajax 页面加载
  • C++-Qt【2】-实现一个简单的记事本
  • Python 学习之---文件目录处理
  • bootstrap0
  • 常用快速原型设计工具大比拼、原型设计工具哪个好用
  • Spring注入方式(1)
  • JSTL自定义标签
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Android开源项目规范总结
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES6简单总结(搭配简单的讲解和小案例)
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python爬虫--- 1.3 BS4库的解析器
  • webpack4 一点通
  • 编写高质量JavaScript代码之并发
  • 初识 beanstalkd
  • 复习Javascript专题(四):js中的深浅拷贝
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端设计模式
  • 前嗅ForeSpider教程:创建模板
  • 收藏好这篇,别再只说“数据劫持”了
  • ​2021半年盘点,不想你错过的重磅新书
  • #NOIP 2014# day.1 T2 联合权值
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (ZT)薛涌:谈贫说富
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (一)u-boot-nand.bin的下载
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .bat批处理出现中文乱码的情况
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core 中的路径问题
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 指南:抽象化实现的基类
  • .NET多线程执行函数
  • .net经典笔试题
  • .NET学习全景图
  • @RestController注解的使用
  • [C++]unordered系列关联式容器
  • [C++随笔录] 红黑树
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽