leetcode:bits:Single Number III(260)

来源:互联网 发布:ipad软件 编辑:程序博客网 时间:2024/04/20 09:07

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

For example:

Given nums = [1, 2, 1, 3, 2, 5], return [3, 5].


http://blog.csdn.net/richard_rufeng/article/details/46974079

vector<int> singleNumberIII(vector<int> &A) {        // write your code here    int ret = 0;    for (int i = 0; i < A.size(); i++) {       ret = ret ^ A[i];    }    int lastOneVal = ret - (ret & (ret - 1));    vector<int> vec1;    vector<int> vec2;    for (int i = 0; i < A.size(); i++) {        if (A[i] & lastOneVal) {            vec1.push_back(A[i]);        }else {            vec2.push_back(A[i]);        }    }    int ret1 = 0;    int ret2 = 0;    for(int i = 0; i < vec1.size(); i++) {       ret1 = ret1 ^ vec1[i];    }    for(int j = 0; j < vec2.size(); j++) {      ret2 = ret2 ^ vec2[j];    }     vector<int> retVec;     retVec.push_back(ret1);     retVec.push_back(ret2);     return retVec;  }
0 0
原创粉丝点击