136.Single Number

来源:互联网 发布:paxos算法执行过程 编辑:程序博客网 时间:2024/05/18 00:01

问题:给一个int数组,所有元素均出现2次除了其中一个只出现1次,找出该数。

思路:建立hash表:遍历数组元素,如果发现hash中没有出现当前元素,就将当前元素插入hash表;如果hash表已经存在该元素,就将该元素删除。最后hash剩下的那个数就是只出现一次的数。

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        if(nums.size()==0) return -1;
        unordered_set<int> dict;
        for(int i=0;i<nums.size();i++){
            if(dict.count(nums[i])){
                dict.erase(nums[i]);
            }else{
                dict.insert(nums[i]);
            }
        }
        unordered_set<int>::iterator iter=dict.begin();
        return *iter;
    }
};

0 0
原创粉丝点击