每日一题-二进制表示中质数个计算置位
762. 二进制表示中质数个计算置位
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/prime-number-of-set-bits-in-binary-representation
题目
给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数。
计算置位位数 就是二进制表示中 1 的个数。
- 例如,
21的二进制表示10101有3个计算置位。
思路
简单模拟,利用n&(n-1)去掉n中最右的1并记录个数。由于int型最多32位,直接将32以内的质数存起来查询。
此外,n&-n操作效果为只保留最右的1。
代码
1 | class Solution { |