目录
1,题目描述
- lottery:(用发行彩票为政府、慈善机构等集资的) 抽彩给奖法; 碰运气的事;
- bets:下赌注(于); 用…打赌; 敢说; 八成儿;
Sample Input 1:
7 5 31 5 88 67 88 17
Sample Output 1:
31
Sample Input 2:
5 888 666 666 888 888
Sample Output 2:
None
题目大意
(实不相瞒,这题目看了好多遍,硬是没理解什么意思)
了解了网上的解说后才搞懂。。。
按顺序输入给的数据集,并输出第一个在数据集中不重复的数字。(即使集合中有很多不重复的元素,只认准按顺序来的第一个)
2,思路
接收数据时,分别将数据存放至map<int, int> data(存放数据出现的次数)和vector<int> back(对输入数据进行备份,便于模拟输入的顺序)中。处理完之后,再遍历back中的元素,选出第一个data[back[i]] == 1的元素back[i],即最终结果。
3,代码
#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main(){
map<int, int> data;
vector<int> back;
int n, num;
cin>>n;
for(int i = 0; i < n; i++){
scanf("%d", &num);
data[num]++;
back.push_back(num);
}
for(int i = 0; i < n; i++){
if(data[back[i]] == 1){
cout<<back[i];
return 0;
}
}
cout<<"None";
return 0;
}