JSFiddle - React, Tailwind, and code Playground
by ronilan
JavaScript
/*
- Duplicate Number -
DESCRIPTION
Given an unsorted array of n integers containing all numbers between 1...n-1 and 1 duplicate, find the duplicate.
EXAMPLE
Array: 2, 1, 3, 4, 8, 6, 5, 7, 4
Output: 4
*/
//sum = n(n+1)/2
function findDupMath(arr){
var n = arr.length-1,
max = n+1,
sum = n*(n+1)/2,
actualSum = 0; // sum of the array.
for(i=0; i<max; i++){
actualSum = actualSum + arr[i];
}
return actualSum - sum;
}
/*
[1, 2, 2]
n = 2
max = 3
sum = 5
actualSum = 2
*/
function findDup(arr){
var i,
j,
result = null;
max = arr.length;
for(i=0; i<max; i++){
for(j=0;j<max; j++){
if(arr[i] == arr[j] && i !== j ){
result = arr[i];
}
}
if(result !== null){
break;
}
}
return result;
}
var arr = [2, 1, 3, 4, 8, 6, 5, 7, 4, 9];
console.log(findDupMath(arr));
console.log(findDup(arr));