Practicing a program called Find missing and repeating number.
Input: 3
3 1 3
Output: 3 2
Repeating number should be first then missing number.
Only one test case failed due to time out error on hackerrank.
Code shown below, can someone please identify what is the mistake? Thanks in advance
int i=0;
int n = arr.size();
while(i<n){
if(arr.get(i)==i+1||arr.get(arr.get(i)-1)==arr.get(i)){
i++;
}else{
int j=arr.get(i)-1;
int temp=arr.get(j);
arr.set(arr.get(j),arr.get(i));
arr.get(i)=temp;
}
}
int ans[]=new int[2];
for(i=0;i<n;i++){
if(arr[i]!=i+1){
ans[0]=arr[i];
ans[1]=i+1;
break;
}
}
return ans;
}