First Repeating element
Given an integer array A of size N, find the first repeating element in it.
We need to find the element that occurs more than once and whose index of first occurrence is smallest.
If there is no repeating element, return -1.
int Solution::solve(vector<int> &A) {
int n=A.size();
unordered_map<int,int> m;
if(n==1) return -1;
for(int i=0;i<n;i++)
{
m[A[i]]++;
}
for(int i=0;i<n;i++) if(m[A[i]]>1)return A[i];
return -1;
}
int Solution::solve(vector<int> &A) {
int n=A.size();
int min=-1;
unordered_map<int, int> b;
for(int i=n-1;i>=0;i--){
b[A[i]] +=1;
if(b[A[i]] > 1) min=A[i];
}
return min;
}
Comments
Post a Comment