题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

思路:
位运算,异或思路,反正我是想不到…看了题解和评论才弄懂是怎么一回事。
按位与&,0&1=0 0&0=0 1&0=0 1&1=1
异或^,对位相加,但不进位 1^0=1 1^1=0 0^0=0 0^1=1

一个数与自己异或为0,一个数与0异或为自己

由于其它数字两两相同,所以所有数相互异或则得到这两个不同数的异或结果。
异或的结果有一位为1,这两个不相同的数在该位一个为0,一个为1。按照这个将数组分为两组,一组在该位为1,一组在该位为0,这两个不同数字分别在这两组内。
将两组内的数凉凉异或,因为相同的数会抵消掉,得到的结果就是这两个不同的数。

class Solution {public:void FindNumsAppearOnce(vector<int> nums,int* num1,int *num2) {int ret = 0;for(auto n : nums){ret ^= n;}//找为一得位置int div = 1;while((div & ret) == 0){div <<= 1;//左移找一}int a = 0, b = 0;for(auto n : nums){if(div & n){a = a^n;}}b = a ^ ret;*num1 = a;*num2 = b;}
};

【剑指offer】登峰造极--数组中只出现一次的数字相关推荐

  1. 剑指offer:数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 解题思路 用容器存次数. class Solution { public:void FindNu ...

  2. 《剑指offer》--- 数组中只出现一次的数字

    本文算法使用python3实现 1. 问题   一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.   时间限制:1s:空间限制:32768K 2 思路描述 ...

  3. 《剑指offer》-数组中只出现一次的数字

    /* 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.思路: 如果是只有一个数字出现一次,那么所有数字做异或就得到结果: 现在有两个数字x,y分别出现一次, ...

  4. 《剑指offer》数组中只出现一次的数字

    题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 解析:直接用set集合去重,每个集合的元素都去原数组array里找,出现一次就保存下 //num1, ...

  5. 剑指Offer之数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 解题思路 先对数组进行排序,然后再进行线性统计,时间复杂度是O(Nlog⁡N)O(N\log ...

  6. 【LeetCode】剑指 Offer 51. 数组中的逆序对

    [LeetCode]剑指 Offer 51. 数组中的逆序对 文章目录 [LeetCode]剑指 Offer 51. 数组中的逆序对 package offer;public class Soluti ...

  7. 【LeetCode】剑指 Offer 56. 数组中数字出现的次数

    [LeetCode]剑指 Offer 56. 数组中数字出现的次数 文章目录 [LeetCode]剑指 Offer 56. 数组中数字出现的次数 package offer;import java.u ...

  8. 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字

    [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...

  9. java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...

  10. 剑指 Offer 39. 数组中出现次数超过一半的数字

    剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban ...

最新文章

  1. iphonex黑屏开不了机_iphonexr黑屏,iphonexr突然开不了机
  2. python连接memcached
  3. 光脚丫学LINQ(005):数据表之间的联接查询
  4. Dalvik线程模型
  5. 特定视图呈现时发生的事件顺序
  6. 怎么学好python leetcode的题目太难了_为什么leetcode中的python解法过于pythonic,而忽略了算法题主要关注的复杂度问题?...
  7. 光山二高2021高考成绩查询,光山县第二高级中学2019高考成绩和历年成绩汇总
  8. 2020 cr节目源_2020年四款最新直播软件汇总,频道多,画质流畅节目源超级稳定!...
  9. 聚类分析的Matlab 程序—系统聚类(附有案例分析)
  10. Excel如何实现随机抽取
  11. 华为手机一直android,华为手机内存不够用?这5个文件夹常清理,可以腾出近10个G内存...
  12. JobTracker作业启动过程分析
  13. 微信上传临时素材|微信公众号发送图片
  14. angular烂笔头
  15. CTrackThread::PreTranslateMessage(MSG* pMsg)
  16. 使用bootstrap实现freeCodeCamp上Build a Personal Portfolio Webpage
  17. 【观察】揭秘:中信银行信用卡新核心系统自研之路
  18. java实现交叉报表_交叉填报表的制作
  19. 小鲨鱼在51nod小学
  20. 为什么要学习 Python?这是我听过最实用的答案

热门文章

  1. 18.自定义标签及模板中的使用【由浅入深】
  2. 用备忘录写下想法 帮自己记录灵感
  3. c++11 std::enable_if在模板偏特化的妙用
  4. 聚类算法评价指标python实现_[ML] 聚类评价指标
  5. [jvm]频繁full gc怎么优化
  6. 首次提出数据权!!《深圳经济特区数据条例(征求意见稿)》全文
  7. 正则表达式匹配正负小数以及整数
  8. 合作模式歌利亚机器人_歌利亚全任务流程图文攻略_歌利亚通关攻略_牛游戏网攻略...
  9. strncpy使用缺陷
  10. 系统没有“internet信息服务(IIS)管理器”