只出现一次的数字II

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,3,2]

输出: 3

示例 2:

输入: [0,1,0,1,0,1,99]

输出: 99

将int数分为32位,那么按该题的要求,这32位的每一位,所出现过的数目必定是3N或3N+1,3N+1的位级必然是那唯一的一个元素贡献的。对int数res的每个位进行数组位与遍历,出现3N+1的即保留下来,最终刷完32位之后,可得结果。

 class Solution{
public:
int singleNumber(vector<int>& nums){
int length = nums.size();
int result = 0;
for (int i = 0; i<32; i++){
int count = 0;
int mask = 1 << i;
for (int j = 0; j<length; j++){
if (nums[j] & mask)
count++;
}
if (count % 3)
result |= mask;
}
return result;
}
};

最新文章

  1. TortoiseGIT创建及合并分支
  2. [转载]我的Java后端书架 (2016年暖冬4.0版)
  3. 今天遇到了批量删除 redis 某个前缀的所有 key,发现只能是这么解决。
  4. boost库学习之开篇
  5. php中的 == 和 ===
  6. CentOS下添加新硬盘
  7. ylbtech-Unitity-cs:传递的字符串中数字字符的数目
  8. Dapper ORM 用法
  9. 【zendstudio】如何利用zendstudio新建 或导入php项目
  10. sqort函数用法总结
  11. LaTeX新人教程,30分钟从全然陌生到基本入门
  12. (转载)#include机制,#ifndef...#define...#endif防止重复引用,声明,定义等概念
  13. semver(Semantic Versioning)
  14. [LeetCode] Redundant Connection II 冗余的连接之二
  15. 斐波那契数列(C#)
  16. oracle建表 和 设置主键自增
  17. 前后端分离djangorestframework——权限组件
  18. ubuntu 14.04 安装 eclipse
  19. Git:本地建服务器及入门使用方法
  20. 从零开始写一个发送h264的rtsp服务器(上)

热门文章

  1. codevs 3044 矩形面积求并 || hdu 1542
  2. RHEL5.6配置本地yum源
  3. IOS应用开发版本控制工具之Versions使用,iosversions
  4. JS-表格数据的添加与删除、搜索
  5. AJPFX总结正则表达式的概述和简单使用
  6. Map接口框架图
  7. UI动画效果
  8. linux命令useradd添加用户
  9. 田字格布局html div
  10. 以JSONobject形式提交http请求