题目描述:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。
解题思路:
利用set不插入重复元素的特性,所以说count本身是用来检查目标元素出现次数的,在set集合里面就成了判断该元素是否出现,所以当该元素未出现的时候,将其插入set集合,当该元素出现第二次的时候,利用erase函数将其删除,因为题目中提到所有数字都是成对出现,所以最终set集合只剩下一个元素,即所求元素.
#include<bits/stdc++.h>
using namespace std;int main() {
set<int> a;
a.clear();
int b;
while(cin>>b)
{
if(a.count(b)!=0)
a.erase(b);
else
a.insert(b);
}
cout<<"The one is "<<*a.begin()<<endl;
}
本题目有多种解法;
题目有点水,可能代码有BUG,本人小白,欢迎大佬评论.