Single Number - Given a non-empty array of integers, every element appears twice except for one. Find that single one

LeetCode 30 Days coding solutions

Single Number

Question:

Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

Example 1:

Input: [2, 2, 1];
Output: 1;

Example 2:

Input: [4, 1, 2, 1, 2];
Output: 4;

Solutions

Solution 1:
/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function (nums) {
  // Validate the input
  if (!nums) {
    return;
  }
  // Sort the number
  nums = nums.sort((a, b) => a - b);
  //As we know the number can appear at most twice
  for (let i = 0; i < nums.length; i = i + 2) {
    //return current index value if the current index is not equal to next index
    if (nums[i] !== nums[i + 1]) {
      return nums[i];
    }
  }
};
Solution 2

This solution uses xor operation

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function (nums) {
  // Validate the input - This is the first thing we should always do while solving problems.
  if (!nums) {
    return;
  }

  let result = 0;
  for (let i = 0; i < nums.length; i++) {
    result ^= nums[i];
  }
  return result;
};

To know more about javascript bit-wise operation follow this link Javascript bit-wise operation

💌 If you’d like to receive more tutorials in your inbox, you can sign up for the newsletter here.

Discussions

Up next