题意分析:
(1)给出一组数,找出这组数中第一个在此数列中只出现一次的数
(2)水题,开辟一个数组作为位图索引使用,每出现某个数一次,就在索引位置+1,同时使用vector记录下原来的数组顺序,以便后面遍历使用,当第一次遍历到某个数时,其索引数组对应的位置值为1,则输出
可能坑点:
(1)不要对数组中每个元素采用循环遍历的方法,否则超时
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
vector<int>arr;
int main()
{
int N,i=0,num;
cin>>N;
int flag[10001];
memset(flag,0,sizeof(flag));
while(i<N)
{
cin>>num;
flag[num]++;
if(flag[num]==1)arr.push_back(num);
i++;
}
vector<int>::iterator itb=arr.begin();
vector<int>::iterator ite=arr.end();
for(;itb!=ite;itb++)
{
if(flag[*itb]==1)
{
cout<<*itb<<endl;
return 0;
}
}
cout<<"None"<<endl;
return 0;
}