//Google Question
//GIVEN an array = [2,5,1,2,3,5,1,2,4];
//IT should return 2;
//Given an array = [2,1,1,2,3,5,1,2,4];
//It should return 1;
//Given an array = [2,3,5,1,4];
//It should return undenfined;
/*
function findFirstRepeatedNumber(arrays)
{
if(!arrays || arrays.length == 0 ) return;
//assume that arrays have the value
let len = arrays.length;
let fNumber = -1;
for(let i = 0; i < len; i++)
{
if(fNumber != -1) break;
for(let j = 1; j < len ; j++)
{
if(arrays[i] == arrays[j])
{
fNumber = arrays[i];
break;
}
}
}
if(fNumber == -1) return undenfined;
return fNumber;
}
let givenArray = [2,3,5,1,4];
console.log(findFirstRepeatedNumber(givenArray));
*/
//navie approach
let givenArray = [2,5,1,2,3,5,1,2,4];
function firstRecurringCharacter(input){
for(let i = 0; i < input.length;i++)
{
for(let j = i+1; j < input.length;j++){
if(input[i]=== input[j])
{
return input[i];
}
}
}
return undefined;
}//O(n^2)
console.log(firstRecurringCharacter2(givenArray));
function firstRecurringCharacter2(input){
let map = {};
for(let i = 0; i < input.length; i++)
{
if(map[input[i]] !== undefined){
return input[i];
}
else
{
map[input[i]] = i;
}
}
return undefined;
}
function firstRecurringCharacterI(input)
{
let index = input.length;
for(let i = 0 ; i < input.length; i++)
{
for(let j = i + 1 ; j < input.length; j++)
{
if(input[i] == input[j])
{
if(index > j){
index = j;
}
}
}
}
return input[index];
}
console.log(firstRecurringCharacterI([2,3,5,1,4]))