每日一题-二进制表示中质数个计算置位
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 { |