[Leetcode]Single Number II
2015-09-22 14:34
295 查看
Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
class Solution {
public:
/*algorithm: bit operation
just like binary op, count bit count and %3
time O(n) space O(1)
*/
int singleNumber(vector<int>& nums) {
int bit[32]={0};
for(int i = 0;i < nums.size();i++){
int n = nums[i];
for(int k = 0;k < 32;k++){
bit[k] += n&0x1;
bit[k] %= 3;
n >>= 1;
}
}
int ret = 0;
for(int k = 0;k < 32;k++)
ret |= bit[k] << k;
return ret;
}
};
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
class Solution {
public:
/*algorithm: bit operation
just like binary op, count bit count and %3
time O(n) space O(1)
*/
int singleNumber(vector<int>& nums) {
int bit[32]={0};
for(int i = 0;i < nums.size();i++){
int n = nums[i];
for(int k = 0;k < 32;k++){
bit[k] += n&0x1;
bit[k] %= 3;
n >>= 1;
}
}
int ret = 0;
for(int k = 0;k < 32;k++)
ret |= bit[k] << k;
return ret;
}
};
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#获取关键字附近文字算法实例