/*
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:
如果是只有一个数字出现一次,那么所有数字做异或就得到结果;
现在有两个数字x,y分别出现一次,其他数字出现两次,那么所有数字异或的结果是result = x^y
x^y肯定不等于0,那么找其二进制表示中不等于0的一个位,比如从右到左第一个位置好了,那么用这个位置能区分开来这两个数字,以及其他的数字,每两个一样的数字都处于同一边。
*/
class Solution {
public:void FindNumsAppearOnce(vector<int> data, int* num1, int *num2) {int res = data[0];for (int i = 1; i < data.size(); i++){res = res ^ data[i];}int cnt = 0;while (res % 2 != 1){res = res >> 1;cnt = cnt + 1;}*num1 = *num2 = 0;for (int i = 0; i < data.size(); i++){if ((data[i] >> cnt) & 1){*num1 ^= data[i];}else{*num2 ^= data[i];}}}
};

《剑指offer》-数组中只出现一次的数字相关推荐

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

    本文首发于我的个人博客:尾尾部落 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 解题思路 法一:大家都能想到的HashMap法 法二:异或法 ...

  2. 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  3. 剑指offer:数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  4. python剑指offer数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  5. 剑指offer 数组中的逆序对

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...

  6. 【排序】剑指offer:数组中重复的数字

    对数组进行排序,然后遍历判断,如果两个数相等,那么这两个数一定相邻 代码: class Solution { public:int duplicate(vector<int>& n ...

  7. 剑指offer 数组中的逆数对

    链接:https://www.nowcoder.com/profile/8740530/codeBookDetail?submissionId=9156674 来源:牛客网class Solution ...

  8. 【难题+重点】剑指offer——面试题40:数组中只出现一次的数字

    剑指offer--面试题40:数组中只出现一次的数字 Solution1: 书中展示了很棒的思路: 关于异或的两个性质应该知道: (1) X^X = 0; (2) X^0 = X; class Sol ...

  9. 《剑指offer》-- 第一个只出现一次的字符、数组中只出现一次的数字、字符流中第一个不重复的字符、数组中重复的数字

    一.第一个只出现一次的字符: 1.题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写 ...

  10. 【剑指offer-Java版】40数组中只出现一次的数字

    数组中只出现一次的数字:输入一个数组,该数组中有两个数字只出现了一次,其他数字都出现了两次,求出这两个只出现了一次的数字 要求时间复杂度为O(n)空间复杂度为O(1) 考虑一个数组中只有一个数字仅仅出 ...

最新文章

  1. 无线网卡实现AP 热点功能,共享Internet连接设置
  2. 《Java EE核心框架实战》—— 2.3 resultMap 标签
  3. U-BOOT之一:BootLoader 的概念与功能
  4. Python 之 线程
  5. 栈的应用--中序表达式转后序表达式
  6. vim 删除当前词_vim 可视话模式(即删除一列和多列)
  7. Leetcode每日一题:328.odd-even-linked-list(奇偶链表)
  8. JavaScript中的数组 1
  9. CAD中 OLE不能旋转_AutoCAD小秘密042:光栅图像和OLE图像,究竟如何选择
  10. android字体右对齐,Android TextView将文本右对齐和左对齐
  11. 判断一个字符数据是否是数字字符
  12. 哈罗单车打不开锁,显示:“可能卡住了 重新开锁”
  13. LaTeX 图片加标题 文本分栏自动换行
  14. 用计算机弹有点甜乐谱,《汪苏泷 - 有点甜,钢琴谱》汪苏泷(五线谱 钢琴曲 指法)-弹吧|蛐蛐钢琴网...
  15. 关于“产品驱动”和“技术驱动”
  16. 大学生必学练习题 - Java 语言经典50例
  17. Unity3D-VR手柄控制器的实现
  18. 新品速看丨创新微MinewSemi正式推出GNSS高精度卫星定位导航模块
  19. Golang GMP调度模型
  20. 泛微协同管理应用平台e-cology怎么样?

热门文章

  1. oracle schema
  2. 七牛云:调用七牛OCR接口,几行代码识别身份证信息
  3. Git私服搭建与使用
  4. 使用maven运行单元測试总结
  5. HTML5路由和PJAX
  6. Android_神奇的android:clipChildren属性
  7. 如何在Oracle11中配置st_shapelib
  8. 【xinfanqie】五方面快速解决Win8蓝屏问题
  9. OCCI读写Oracle Spatial的SDO_Geometry
  10. [Modules]PrestaShop插件 模块 – 产品推荐模块 随机展示推荐产品