Back to all solutions

#2568 - Minimum Impossible OR

Problem Description

You are given a 0-indexed integer array nums.

We say that an integer x is expressible from nums if there exist some integers 0 <= index1 < index2 < ... < indexk < nums.length for which nums[index1] | nums[index2] | ... | nums[indexk] = x. In other words, an integer is expressible if it can be written as the bitwise OR of some subsequence of nums.

Return the minimum positive non-zero integer that is not expressible from nums.

Solution

/**
 * @param {number[]} nums
 * @return {number}
 */
var minImpossibleOR = function(nums) {
  const set = new Set(nums);
  let result = 1;

  while (set.has(result)) {
    result <<= 1;
  }

  return result;
};