Given an array of integers, every element appears twice 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)使用map
class Solution { public: int singleNumber(vector<int>& nums) { unordered_map<int,int> ret; int i =0; while(i < nums.size()) { ret[nums[i]]++; i++; } for(unordered_map<int,int>::iterator it = ret.begin();it != ret.end(); ++it) { if(it->second == 1) { return it->first;break; } } } };
原文:http://www.cnblogs.com/chdxiaoming/p/4851630.html