给一个连续的数据流,写一个函数返回终止数字到达时的第一个唯一数字(包括终止数字),如果找不到这个终止数字, 返回 -1
.
样例
样例1
输入:
[1, 2, 2, 1, 3, 4, 4, 5, 6]
5
输出: 3
样例2
输入:
[1, 2, 2, 1, 3, 4, 4, 5, 6]
7
输出: -1
样例3
输入:
[1, 2, 2, 1, 3, 4]
3
输出: 3
class Solution {
public:
/**
* @param nums: a continuous stream of numbers
* @param number: a number
* @return: returns the first unique number
*/
int firstUniqueNumber(vector<int> &s, int number) {
// Write your code here
unordered_map<int, int> mymap;
int flag = 0;
for(int i = 0; i < s.size(); i++)
{
if(s[i] == number)
{
flag = i;
mymap[s[i]]++;
break;
}
mymap[s[i]]++;
}
if(flag == 0)
return -1;
int ch = 0;
int index = INT_MAX;
int ret = 0;
cout<<flag;
for(auto it = mymap.begin(); it != mymap.end(); it++)
{
//cout<<it->first;
if(it->second == 1)
{
ch = it->first;
//break;
for(int i = 0; i <= flag; i++)
{
if(s[i] == ch)
{
if(i < index)
{
index = i;
ret = s[index];
}
//index = min(ret, i);
break;
}
}
}
}
if(ch == 0)
return -1;
//cout<<ch<<endl;
return ret;
}
};