Finding duplicates
by Dhiviya Dhanasekar
August 03, 2016
HTML
<h2>
Find duplicate element
</h2>
<div>
Given: a list of integers where:
the integers are in the range 1..n
the list has a length of n+1
</div><br/>
Answers:
<div id='ans'>
</div>
JavaScript
function printElement(num, arr){
console.log('duplicate num', num);
var ansDiv = document.getElementById('ans');
var newAnswer = document.createElement('div');
newAnswer.textContent = arr + ' => ' + num;
ansDiv.appendChild(newAnswer);
}
function swap(arr, index1, index2){
console.log('swapping', index1, index2);
var temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
console.log('arr', arr)
}
function findDuplicate(arr){
for(var i=0; i<arr.length; ){
var currentMinusOne = arr[i] -1;
if(currentMinusOne === i) { i++; continue;}
if(arr[i] !== arr[currentMinusOne]) {
swap(arr, i, currentMinusOne);
} else {
printElement(arr[i], arr);
return arr[currentMinusOne];
}
}
}
//Test cases
console.log('ans1 = ', findDuplicate([5,4,1,2,3,2]));
console.log('ans1 = ', findDuplicate([5,4,3,2,3,1]));