欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(牛客剑指offer刷题33)数组中只出现一次的数字

程序员文章站 2022-03-08 15:49:28
...

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

 

思路

哈希表。

 

我提交的代码

lass Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        int len = data.size();
        int i;
        bool bFind = false;
        map<int,int> myMap;
        for (i = 0; i < len; ++i){
            auto iter = myMap.find(data[i]);
            if (iter != myMap.end()){
                myMap[data[i]] = 0;
            }
            else{
                myMap.insert(pair<int, int>(data[i], i+1));
            }
        }
        for (i = 0; i < len; ++i){
            if (myMap[data[i]] != 0){
                if (bFind == false){
                    bFind = true;
                    *num1 = data[i];
                }
                else{
                    *num2 = data[i];
                }
            }
        }
    }
};