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

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

程序员文章站 2022-03-01 13:33:32
...

题目介绍

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

题目分析

这种题目可以通过建立map来进行键和值的查找,以数字为key,以出现的次数为value。详细操作请见源代码。

源代码

class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) 
    {
        map<int,int> mp;
        int flag1=0,flag2=0;
        map<int,int>::iterator it;
        for(int i=0;i<data.size();i++)
        {
            mp[data[i]]++;
        }
        for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++)
        {
            if(it->second==1)
            {
                if(flag1==0)
                {
                    *num1=it->first;
                    flag1=1;
                }
                else
                {
                    *num2=it->first;
                }
                
            }
        }
    }
};