[LeetCode] Single Number II
2013-10-06 16:15
357 查看
Single Number II
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?
这个还比较好想,如果某位上1出现的次数为 3*k +1 的话,那么只出现一次的数在该位必定为1咯。
比较坑的是提交几次发现 符号位老是丢掉,不明所以,后来发现是
const int MASK 这行出现了问题, 应该是 const unsigned int MASK,然后就好了。
class Solution {
public:
int singleNumber(int A[], int n) {
// Note: The Solution object is instantiated only once and is reused by each test case.
assert(A&&n>0&&(n-1)%3==0);
unsigned int ans=0;
for(int i=0;i<32;i++)
{
const unsigned int MASK=(1<<i);
int t=0;
for(int j=0;j<n;j++)
t+=(A[j]&MASK)>0?1:0;
ans|=(t%3==0)?0:MASK;
}
return (int)ans;
}
};
相关文章推荐
- Leetcode之SingleNumber I/II/III
- [LeetCode]Single Number, Single Number II & Single Number III
- LeetCode题解:Single Number II
- Leetcode: SingleNumber II
- LeetCode | Single Number II
- LeetCode:Single Number II
- Leetcode: Single Number II
- 【leetcode】Single Number && Single Number II(ORZ 位运算)
- LeetCode:Single Number I & II & III
- leetcode||Single Number II
- leetcode single number I II III [python]
- 【leetcode】【137】Single Number II
- *LeetCode-Single Number II
- leetcode_137题——Single Number II(位运算)
- leetcode - Single Number II
- Leetcode: Single Number II
- leetcode Single Number I II III
- [Leetcode]Single Number II
- 【Leetcode】:Single Number II问题 in Go语言
- [LeetCode] Single Number II