LeetCode 3370.仅含置位位的最小整数

题目

给你一个正整数 n

返回 大于等于 n 且二进制表示仅包含 置位 位的 最小 整数 x 。(全是1)

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

思路:计算 n 的二进制长度 m,返回长为 m 的全为 1 的二进制数,也就是2^m−1

代码

java 复制代码
class Solution {
    public int smallestNumber(int n) {
        int m = 32 - Integer.numberOfLeadingZeros(n);
        // 1 左移 m 位,相当于 1 * 2^m
        return (1 << m) - 1;
    }
}

性能

时间复杂度:O(1)

空间复杂度:O(1)

相关推荐
小旺不正经2 分钟前
数据库表实现账号池管理
数据库·后端·算法
豆芽81930 分钟前
模糊控制Fuzzy Control
人工智能·算法·模糊控制
静水流深-刘申1 小时前
算法继续刷起-2025年09月26日
开发语言·c++·算法
木头左1 小时前
跨周期共振效应在ETF网格参数适配中的应用技巧
开发语言·python·算法
顾你&2 小时前
机器学习之无监督学习算法大总结
学习·算法·机器学习
神龙斗士2403 小时前
Java 数组的定义与使用
java·开发语言·数据结构·算法
Y.O.U..3 小时前
力扣HOT100-跳跃游戏II
算法·leetcode
hn小菜鸡3 小时前
LeetCode 3132.找出与数组相加的整数 II
算法·leetcode·职场和发展
微笑尅乐3 小时前
数组模拟加法——力扣66.加一
算法·leetcode·职场和发展
_不会dp不改名_3 小时前
leetcode_146 LRU缓存
算法·leetcode·缓存