数组中只出现一次的数字
来源:互联网 发布:mysql安装教程 windows 编辑:程序博客网 时间:2024/06/14 10:49
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
用位运算,先将所有数字异或可以得到只出现一次的两个数字异或的结果resXor,记下resXor右数第一个为1的位置,说明num1和num2在这一位上是不同的,根据这个条件将整个数组分成两组,每组所有数字相与,剩下的就是要求的数字。
代码:
class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { int n=data.size(); int resXor=0; for(int i=0;i<n;i++) resXor^=data[i]; //int flag=resXor&(resXor-1)^resXor; int flag = resXor&~(resXor-1); for(int i=0;i<n;i++){ if((flag&data[i])==0) (*num1)^=data[i]; else *(num2)^=data[i]; } }};
阅读全文
0 0
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- ZooKeeper之ZAB协议
- 汇编学习笔记 第一章
- HTTP请求的几种类型
- HTML及标签
- 柯洁失败了,AI+成下一个战场/智库2861
- 数组中只出现一次的数字
- 基于FPGA的VGA彩条发生器
- jquery 监听页面是否发生了变化
- TT-2014 研发笔试题
- 【Ionic】堆叠标签
- cocos2dx 植物大战僵尸 21 塔基的更新
- okhttp使用https忽略证书验证
- Apache 服务器下载及安装
- 极光推送集成步骤及注意事项