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

LeetCode 762.二进制表示中质数个计算置位:位运算(mask O(1)判断)

【LetMeFly】762.二进制表示中质数个计算置位:位运算(mask O(1)判断)

力扣题目链接:https://leetcode.cn/problems/prime-number-of-set-bits-in-binary-representation/

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

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

  • 例如,21的二进制表示101013个计算置位。

示例 1:

输入:left = 6, right = 10输出:4解释:6 -> 110 (2 个计算置位,2 是质数) 7 -> 111 (3 个计算置位,3 是质数) 9 -> 1001 (2 个计算置位,2 是质数) 10-> 1010 (2 个计算置位,2 是质数) 共计 4 个计算置位为质数的数字。

示例 2:

输入:left = 10, right = 15输出:5解释:10 -> 1010 (2 个计算置位, 2 是质数) 11 -> 1011 (3 个计算置位, 3 是质数) 12 -> 1100 (2 个计算置位, 2 是质数) 13 -> 1101 (3 个计算置位, 3 是质数) 14 -> 1110 (3 个计算置位, 3 是质数) 15 -> 1111 (4 个计算置位, 4 不是质数) 共计 5 个计算置位为质数的数字。

提示:

  • 1 <= left <= right <= 106
  • 0 <= right - left <= 104

解题方法:预处理

写个脚本,计算10 6 10^6106范围内二进制下最多有多少个1:1 20 = 1048576 1^{20}=1048576120=1048576

再算出来其中都有哪些是质数:[ 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 ] [2, 3, 5, 7, 11, 13, 17, 19][2,3,5,7,11,13,17,19]

再使用一个整数二进制下的每一位代表一个数是否是质数。

''' LastEditTime: 2026-02-21 12:22:44 '''max_length=0while1<<max_length<1000000:max_length+=1print(f'max_length:{max_length}, 1 <<{max_length}={1<<max_length}')primes=[]foriinrange(2,max_length+1):isnot=Falseforjinrange(2,i):ifi%j==0:isnot=Truebreakifnotisnot:primes.append(i)print(f'primes:{primes}')mask=0forpinprimes:mask|=1<<pprint(f'mask:{mask}')""" max_length: 20, 1 << 20 = 1048576 primes: [2, 3, 5, 7, 11, 13, 17, 19] mask: 665772 """
  • 时间复杂度O ( r i g h t − l e f t ) O(right - left)O(rightleft)
  • 空间复杂度O ( N log ⁡ N ) O(N\log N)O(NlogN)

AC代码

C++
/* * @LastEditTime: 2026-02-21 12:28:09 */classSolution{private:constexprstaticintmask=665772;public:intcountPrimeSetBits(intleft,intright){intans=0;for(inti=left;i<=right;i++){if(mask&(1<<__builtin_popcount(i))){// printf("i = %d, cnt1 = %d\n", i, __builtin_popcount(i));ans++;}}returnans;}};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

http://www.jsqmd.com/news/398889/

相关文章:

  • 2026-02-21 学习
  • 基于Spring Cloud的家政服务平台的设计与实现(毕业论文)
  • 使用Godot Secure保护你的项目
  • 2026直膨式空调机组门店大比拼,这些口碑之选别错过,吊顶式空调机组/卡式风机盘管,直膨式空调机组门店排行 - 品牌推荐师
  • 【深度横评】AI记忆功能全平台拆解:ChatGPT/Claude/Gemini/国产大模型谁真懂你?附隐私避坑指南
  • DeepAnalyze智能写作助手开发实战
  • 导师严选!一键生成论文工具,千笔 VS 笔捷Ai,专科生写作神器!
  • 2026年TikTok、Facebook、Linkedln平台SNS社媒推广代运营公司/服务商深度测评榜单:这几家值得重点关注 - 深圳昊客网络
  • LabVIEW 振动信号分析与加速度信号采集探索
  • Cogito-v1-preview-llama-3B效果对比:3B参数下编码能力超Qwen2.5实测报告
  • Git-RSCLIP图文检索模型效果展示:精准匹配遥感图像与文本描述
  • DAMO-YOLO TinyNAS智慧校园:学生行为分析系统
  • Lychee模型边缘部署:树莓派4B实战记录
  • Hunyuan-MT Pro在科研中的应用:arXiv论文摘要多语种自动摘要与术语对齐
  • 用过才敢说 一键生成论文工具 千笔 VS Checkjie 更贴合MBA需求
  • 构建高可靠AI销售机器人的技术架构:从对话引擎到数据闭环的深度解析
  • vscode配置php重构功能
  • Fish-Speech-1.5语音克隆效果对比:不同语言表现分析
  • 凸优化数学基础笔记(七):一般非线性最优问题的迭代解法思路
  • 万物识别-中文镜像镜像免配置:/root/UniRec路径统一,开发调试零迁移成本
  • Vscode ESP32S3 IDF WIFI OTA升级
  • ChatTTS会议纪要转述:将文字记录转化为语音回顾
  • GLM-4.7-Flash快速上手:API Key权限管理与多租户隔离配置
  • 通义千问3-Reranker-0.6B实战:电商商品搜索排序优化
  • 笔记本也能跑!DeepSeek-R1-Distill-Qwen-1.5B轻量级方案
  • GitHub协作开发AnythingtoRealCharacters2511插件:团队协作指南
  • 医疗AI新突破:Baichuan-M2-32B-GPTQ-Int4医疗大模型5分钟快速部署指南
  • Vue前端框架集成Shadow Sound Hunter模型API实战
  • 基于Opencv4.7.0开发的棋盘格标定助手
  • Java Web项目是Java EE项目吗?一文理清核心差异