/*
题目:
数组中除一个数字只出现一次外,其余数字都出现3次。
*/
/*
思路:
位运算。
*/ #include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map> using namespace std; int FindNumsAppearOnce(int data[],int length){
if(length < 1 || data == nullptr) return -1; int intSize = sizeof(int)*8;
int bitSum[intSize] = {0}; //计算各位的1的个数
for(int i = 0; i < length; i++){
int bisMask = 0;
for(int j = intSize-1; j>= 0; j--){
bitSum[j] += ((data[i]>>bisMask) & 1);
bisMask++;
}
} //各位上出现3的非整数倍,则该位属于只出现一次的数字
int bisMask = 0;
int res = 0;
for(int i = intSize-1; i >= 0; i--){
if(bitSum[i] % 3 == 1){
res += (1<<bisMask);
bisMask++;
}
}
return res;
} int main(){
int data[] = {2,2,2,3,6,4,5,5,4,6,6,5,4,32,32,32};
cout<<FindNumsAppearOnce(data,sizeof(data)/sizeof(data[0]));
}

  

最新文章

  1. DynamicJson
  2. 用时间复杂度为n的方法找出水王
  3. Windows Server 2012 四个版本对比
  4. Hibernate一对一双向关联(外键)
  5. 基于TCP的NAT子网穿透实验
  6. android activity启动的时候隐藏软键盘
  7. RR模式下的事务隔离
  8. CSS小技巧-两个盒子之间的间距问题
  9. 《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结
  10. linux下insmod lsmod rmmod
  11. 新装的Linux服务系统安装MySQL
  12. css3中的动画 @keyframes animation
  13. Amazing iOS Tips
  14. SSM-Spring-22:Spring+Mybatis+JavaWeb的整合
  15. 【转】【Android】1分钟不用改任何代码在Eclipse中使用AAR
  16. python模块的使用
  17. ubuntu14/16 安装python3-opencv3_百度经验
  18. J - 青蛙的约会(扩展欧几里得)
  19. JavaScript之复杂对象的深拷贝(完全深拷贝)
  20. FB的破解与安装

热门文章

  1. 请注意安全!你的mongodb已经被黑了!互联网安全生产大过天!
  2. jQuery下载所有版本
  3. oracle和mysql区别
  4. Magicodes.IE 2.0发布
  5. Python报错:PermissionError: [Errno 13] Permission denied
  6. OS课程 ucore_lab2实验报告
  7. ARTS Week 2
  8. 题解 SDOI2010 【栗栗的书架】
  9. WLAN802.11
  10. CodeForces 429B Working out DP