comments | difficulty | edit_url | rating | source | tags | ||
---|---|---|---|---|---|---|---|
true |
简单 |
1198 |
第 426 场周赛 Q1 |
|
给你一个正整数 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
我们从
时间复杂度
class Solution:
def smallestNumber(self, n: int) -> int:
x = 1
while x - 1 < n:
x <<= 1
return x - 1
class Solution {
public int smallestNumber(int n) {
int x = 1;
while (x - 1 < n) {
x <<= 1;
}
return x - 1;
}
}
class Solution {
public:
int smallestNumber(int n) {
int x = 1;
while (x - 1 < n) {
x <<= 1;
}
return x - 1;
}
};
func smallestNumber(n int) int {
x := 1
for x-1 < n {
x <<= 1
}
return x - 1
}
function smallestNumber(n: number): number {
let x = 1;
while (x - 1 < n) {
x <<= 1;
}
return x - 1;
}