Solution:
思路:排序后进行左右比对
int singleNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); for(vector<int>::iterator iter = nums.begin();iter!=nums.end();iter++){ if(iter==nums.begin() && (*iter != *(iter + 1))){ return *iter; } else if(iter==(nums.end()-1) && (*iter != *(iter - 1))){ return *iter; } else if((*iter != *(iter - 1)) && (*iter != *(iter + 1))){ return *iter; } } }
int singleNumber(int a[], int n) { //xor all numbers, the left over number would be the non repeated one // since the equl numbers cancel out each others bits int num = 0; for (int i = 0; i < n; ++i) { num ^= a[i]; } return num; }新闻热点
疑难解答