Company: Oracle
Question:
EXECUTION TIME:0.12s
Question:
Find the first repeating element in an array of integers, i.e., an element that occurs more than once and whose index of first occurrence is smallest.
Input :
The first line contains an integer 'T' denoting the total number of test cases. In each test cases, First line is number of elements in array 'N' and second its values.
The first line contains an integer 'T' denoting the total number of test cases. In each test cases, First line is number of elements in array 'N' and second its values.
Output:
In each separate line print the index of first repeating element, if there is not any repeating element then print “-1”. Use 1 Based Indexing.
In each separate line print the index of first repeating element, if there is not any repeating element then print “-1”. Use 1 Based Indexing.
Constraints:
1 <= T <=500
1 <= N <=10000
0 <= a[i] <=10000
1 <= T <=500
1 <= N <=10000
0 <= a[i] <=10000
Example:
Input:
1
7
1 5 3 4 3 5 6
Input:
1
7
1 5 3 4 3 5 6
Output:
2
2
Explanation:
5 is appearing twice and its first appearence is at index 2 which is less than 3 whose first occuring index is 3.
5 is appearing twice and its first appearence is at index 2 which is less than 3 whose first occuring index is 3.
CODE:
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
public static void main (String[] args) {
Scanner sc = new Scanner (System.in);
int m = sc.nextInt();
for(int mi=0;mi<m;mi++){
int n=sc.nextInt();
int [] a= new int[n];
for(int j=0;j<n;j++){
a[j]=sc.nextInt();
}
first(a,n);
}
}
public static void first(int []a, int n){
HashSet<Integer> hset= new HashSet<>();
int min=-1;
for(int i=n-1;i>=0;i--){
if(hset.contains(a[i])){
min=i;
}
else{hset.add(a[i]);}
}
if(min>=0){System.out.println(min+1);}
else{System.out.println(-1);}
}
}
EXECUTION TIME:0.12s
Comments
Post a Comment