Skip to content

E3370.仅含置位位的最小整数

bit manipulation, https://leetcode.cn/problems/smallest-number-with-all-set-bits/

给你一个正整数 n

返回 大于等于 n 且二进制表示仅包含 置位 位的 最小 整数 x

置位 位指的是二进制表示中值为 1 的位。

示例 1:

输入: n = 5

输出: 7

解释:

7 的二进制表示是 "111"

示例 2:

输入: n = 10

输出: 15

解释:

15 的二进制表示是 "1111"

示例 3:

输入: n = 3

输出: 3

解释:

3 的二进制表示是 "11"

提示:

  • 1 <= n <= 1000
python
class Solution:
    def smallestNumber(self, n: int) -> int:
        len = n.bit_length()
        s = '1'*len
        return int(s, 2)
python
class Solution:
    def smallestNumber(self, n: int) -> int:
        return (1 << n.bit_length()) - 1