missing number

by sramnan

JavaScript

function findMissing(set) {
  var x1 = set[0]; // XOR for elems in array
  var x2 = 1; // XOR for all the integers from 1 to n + 1

  for (var i = 1; i < set.length; i++) {
    x1 = x1 ^ set[i];
  }

  for (var i = 2; i <= set.length+1 ; i++) {
    x2 = x2 ^ i; // just counting up from 1 and doing XOR      
  }

  return (x1 ^ x2); // The difference in XOR (bitwise) is the missing value
}


console.log(findMissing([2, 3, 4, 5, 6]));