lintcode-落单的数 III
2016-09-02 10:49
302 查看
给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。
样例
给出 [1,2,2,3,4,4,5,3],返回 1和5
样例
给出 [1,2,2,3,4,4,5,3],返回 1和5
class Solution { public: /** * @param A : An integer array * @return : Two integers */ vector<int> singleNumberIII(vector<int> &A) { // write your code here vector<int> vec; if(A.size()<=1) return vec; int temp=0; int i,j; for(i=0;i<A.size();i++) temp^=A[i]; for(j=0;j<sizeof(int)*8;j++) { if(((temp>>j)&0x01)==1) break; } int p1=0,p2=0; for(i=0;i<A.size();i++) { if(((A[i]>>j)&0x01)==0) p1^=A[i]; else p2^=A[i]; } vec.push_back(p1); vec.push_back(p2); return vec; } };
相关文章推荐
- [LintCode] 落单的数 III Single Number III
- Lintcode—落单的数III
- lintcode-84-落单的数 III
- LintCode-落单的数 III
- 落单的数 III
- LintCode:买卖股票的最佳时机 III
- Lintcode 落单的数 II
- Lintcode: Single Number III
- LintCode-硬币排成线 III
- lintcode 中等题:Single number III 落单的数III
- lintcode 落单的数 II
- LintCode_82_落单的数
- Lintcode 主元素 III
- 落单的数—LintCode
- Lintcode—落单的数
- LintCode:主元素 III
- [LintCode]Majority Number III
- Lintcode - Maximum Subarray III
- LintCode-82.落单的数
- lintcode-落单的数II-83