leetcode:Single Number II
2014-11-19 20:33
260 查看
class Solution { public: int singleNumber(int A[], int n) { int sign = 0; long long ret = 0; for(int i = 0; i < n ;i++) { long long c = A[i]; if(A[i] < 0) { sign++; ret = threeXOR(ret,-c); } else ret = threeXOR(ret,c); } sign %= 3; if(sign != 0) ret = -ret; return ret; } long long threeXOR(long long a, long long b) { long long result = 0; long long pos = 1; while(a > 0 || b > 0) { int r = 0; r += (a%3); r += (b%3); a/=3; b/=3; r %= 3; result += r*pos; pos*=3; } return result; } };
相关文章推荐
- [LeetCode]Single Number II
- 【LeetCode-137】Single Number II
- leetcode-Single NumberII
- leetcode 之 Single Number II
- LeetCode:Single Number II
- 【Leetcode】 - Single Number II
- leetcode-Single Number II
- LeetCode:Single Number I & II & III
- [LeetCode]Single Number II
- [Leetcode]LeetCode Single Number II 位运算法解析理解
- [LeetCode]Single Number II
- leetCode: Single Number II [137]
- Leetcode 137 Single Number II 仅出现一次的数字
- leetcode Single Number II - 位运算处理数组中的数
- leetcode 137 Single Number II
- leetcode第137题-Single Number II
- leetcode--Single Number II
- Leetcode-SingleNumberII
- LeetCode - Single Number II
- leetcode:Single Number II 【Java】