数组中只出现过一次的数
来源:互联网 发布:淘宝连接热敏打印机 编辑:程序博客网 时间:2024/04/28 10:29
1.一个整型数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。
思路:对数组所有数求亦或和,最终答案就是这个数
2.一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
思路:对数组所有数求亦或和,会得到要求的两数的亦或和ans。假设ans二进制的第i位为1,则说明所求的两个数这一位不同。此时将所有第i位为1的数与ans亦或得到ans1,将所有第i位为0的数与ans亦或得到ans2,则得出答案。
class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {int n = data.size(); int ans = 0; for(int i = 0; i < n; i++) { ans ^= data[i]; } int x = ans; int cnt = 0; while (x) { cnt++; if (x % 2) { break; } x /= 2; } int ans1 = ans, ans2 = ans; for (int i = 0; i < n; i++) { if (data[i] ^ (1 << cnt)) ans1 ^= data[i]; else ans2 ^= data[i]; } *num1 = ans1, *num2 = ans2; }};
0 0
- 数组中只出现过一次的数
- 数组中除了两个数只出现过一次,其他的均出现过两次,请找出这两个只出现过一次的数
- 数组中除了三个数只出现过一次,其他的均出现过两次,请找出这三个只出现过一次的数
- 数组中除了两个数只出现过一次,其他的均出现过两次,请找出这两个只出现过一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- 找出一个数组中只出现过一次的元素
- 数组中只出现过一次的数字
- 【CEGUI】CEGUI入门篇之注入输入事件(五)
- HTML全局属性
- Linux学习 十二单元
- python opencv cv2 基础操作4 Extracting Features
- 一、Python 2.x 基础内容1
- 数组中只出现过一次的数
- 远程连接oracle
- 目标跟踪小结
- 蓝桥杯 带分数
- KCF跟踪算法
- 二级列表单选,全选
- JAVA加解密 -- 对称加密算法与非对称加密算法
- centos 下安装mysql
- linux运维-软件安装