当前位置: 首页 > news >正文

【每日一题】LeetCode 762. 二进制表示中质数个计算置位

给你两个整数 \(\mathrm{left}\)\(\mathrm{right}\) ,在闭区间 \([\mathrm{left}, \mathrm{right}]\) 范围内,统计并返回计算置位位数为质数的整数个数。

计算置位位数就是二进制表示中 \(1\) 的个数。

例如,\(21\) 的二进制表示 \(10101\)\(3\) 个计算置位。

保证 \(1 \le \mathrm{left} \le \mathrm{right} \le 10^6, 0 \le \mathrm{right} - \mathrm{left} \le 10^4\)


考虑到 \(\mathrm{left}, \mathrm{right}\)\(\mathrm{right} - \mathrm{left}\) 都很小,我们可以直接遍历这些数并判断其是否满足条件。

对每个数 \(i\),其计算置位位数至多为 \(\lceil \log_2{i} \rceil \le 20\),因此我们只考虑不超过 \(20\) 的质数即可。

预处理出这些质数(即 \(2, 3, 5, 7, 11, 13, 17\)),维护 bool is[] 仅在上述下标为 true,其余均为 false,遍历 i 时仅当 is[__builtin_popcount(i)]true 时令 ans++

或许你觉得要存下 \(21\) 个数的内存还是太奢侈,事实上 bool 值可以用一个 bit 储存。考虑令

\[\mathrm{is} = \left( 1010 \space 0010 \space 1000 \space 1010 \space 1100 \right)_2 = \left( \mathrm{A28AC} \right)_{16} \]

仅在第 \(2, 3, 5, 7, 11, 13, 17\) 位为 \(1\)。取 1 << popcount(i) & is,答案不为 0 即代表质数。

时间复杂度为 \(O(\mathrm{right} - \mathrm{left})\),空间复杂度为 \(O(1)\)

class Solution {
public:int countPrimeSetBits(int left, int right) {return std::ranges::count_if(std::views::iota(left, right + 1), [](const auto x) { return 1 << __builtin_popcount(x) & 0XA28AC; });}
};
http://www.jsqmd.com/news/399397/

相关文章:

  • 2026年债务协商新选择:一位过来人的真实分享,2026年正规债务协商机构 - 代码非世界
  • 题解:AcWing 868 筛质数
  • CH582M的低功耗学习板开发总结与实验心得
  • CVE-2022-25487
  • 智能体设计模式五
  • AI应用架构师实战:中小学教育AI工具的容器化部署
  • 题解:AcWing 867 分解质因数
  • 寒假学习笔记2.15
  • 题解:AcWing 866 试除法判定质数
  • 实验室里的干涉仪总在搞事情,拍出来的条纹图总像抽象派画作。今天咱们用MATLAB给这些条纹来点硬核处理,手把手整点相位计算、解包裹这些骚操作
  • 寒假学习笔记2.14
  • 淘票票9.5+猫眼9.4+票房破5亿,《惊蛰无声》凭什么让观众打出高分? - SFMEDIA
  • 基于java的设计师约稿平台
  • 从 std 到 STL:C++ 标准库到底是什么?(附 Java 类比)
  • 题解:AcWing 861 二分图的最大匹配
  • 解密AI原生应用领域意图识别的工作原理
  • 基于java和Vue的共享单车管理系统 骑行记录 单车监督调度系统
  • 《惊蛰无声》淘票票开分9.5、猫眼9.4,票房破5亿:口碑与市场双向奔赴 - SFMEDIA
  • 基于java的蛋糕烘焙方法经验分享平台
  • 元数据管理如何提升数据科学团队效率?
  • java软件测试项目任务管理系统
  • 数据运营新人必学:从Excel到SQL到BI,大数据工具学习的3个阶段及避坑点
  • 题解:AcWing 860 染色法判定二分图
  • 寒假学习笔记2.13
  • 基于java+Vue的养老院服务预订管理系统的设计与实现
  • 光子晶体仿真在COMSOL里总能把人折腾得又爱又恨。今天聊聊几个实战中容易卡壳的点:拓扑荷对偏振态的操控、三维能带与Q因子计算,顺带提一嘴远场偏振的骚操作
  • java电影评论情感分析系统78j90381
  • java第二课堂教学管理系统 j6l4ub2t
  • java基于数据可视化的大学生创新能力培养平台
  • java校园二手交易平台