leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

minimum_array_end.py (780B)


# 3133. Minimum Array End

"""
you are given two integers 'n' and 'x'. you have to construct an array of
positive integers 'nums'. of size 'n' where for every '0 <= i < n - 1',
'nums[i + 1]' is greater than 'nums[i]', and the result of the bitwise and
operation between all elements of 'nums' is 'x'. return the minimum possible
value of 'nums[n - 1]'
"""


class Solution(object):
    def minEnd(self, n, x):
        """
        :type n: int
        :type x: int
        :rtype: int
        """
        n -= 1
        b = 1
        for i in range(64):
            if b & x == 0:
                x |= (n & 1) * b
                n >>= 1
            b <<= 1
        return x


if __name__ == "__main__":
    obj = Solution()
    print(obj.minEnd(3, 4))
    print(obj.minEnd(2, 7))