(lleetcode)Single Number

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;    
            }
        }
    }
};

 

posted @ 2015-10-01 22:05  sunalive  Views(156)  Comments(0)    收藏  举报