Finding duplicates

by Dhiviya Dhanasekar

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]));