题目描述:

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

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

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

示例 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 个计算置位为质数的数字。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/prime-number-of-set-bits-in-binary-representation
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

-------------------------------------------------------------------------------------------------------------------------------

day16:今天是一道简单题,简单的放了个假的第一天补代码,这一两天将慢慢把清明的代码补全,这次解题思路不是特别好,内存消耗还可以,看看代码:

public int countPrimeSetBits(int left, int right) {int num, sum = 0, prev = 0;boolean flag;for(int i = left; i <= right; i++){num = i;prev = 0;flag = true;while (num != 0) {int cur = num % 2;if (cur == 1) {prev++;}num /= 2;}if (prev == 1)continue;for(int j = 2; j < prev; j++){if(prev % j == 0){flag = false;break;}}if(flag)sum++;}return sum;}

思路解析:

通过不断除以2算余数来求出当前数的置位位数,然后如果置位位数为1就直接continue,如果不是1就通过for循环来算是否为质数,如果不是质数直接break,最后sum记录总的置位位数的质数数


官方库:

public int countPrimeSetBits(int left, int right) {int ans = 0;for (int x = left; x <= right; ++x) {if (isPrime(Integer.bitCount(x))) {++ans;}}return ans;}private boolean isPrime(int x) {if (x < 2) {return false;}for (int i = 2; i * i <= x; ++i) {if (x % i == 0) {return false;}}return true;}

思路解析:

通过官方的Integer.bitCount直接获取当前数的1的位数,然后通过isPrime函数算出是否质数,思路差不多


官方思路:

public int countPrimeSetBits(int left, int right) {int ans = 0;for (int x = left; x <= right; ++x) {if (((1 << Integer.bitCount(x)) & 665772) != 0) {++ans;}}return ans;}

《LeetCode刷题》762. 二进制表示中质数个计算置位(java篇)相关推荐

  1. LeetCode简单题之二进制表示中质数个计算置位

    题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...

  2. 【leetcode】762. 二进制表示中质数个计算置位

    给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 的二进 ...

  3. 力扣762.二进制表示中质数个计算置位

    题目描述 给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数. (注意,计算置位代表二进制表示中1的个数.例如 21 的二进制表示 10101 有 3 个计算置 ...

  4. Leetcode题库 762.二进制表示中质数个计算置位(哈希数组 C实现)

    文章目录 思路 代码 思路 bit_1函数用于返回十进制数对应二进制数中1的位数 temp为哈希数组,若temp[i]=1,则表明i为质数 若bit_1(i)为质数,ret加1,则否ret加0 代码 ...

  5. 二进制表示中质数个计算置位

    二. 二进制表示中质数个计算置位 2.1.题设要求   给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回计算置位位数为质数的整数个数.计算置位位数就是 ...

  6. LeetCode(762)——二进制表示中质数个计算置位(JavaScript)

    给定两个整数 L 和 R ,找到闭区间[L, R] 范围内,计算置位位数为质数的整数个数. (注意,计算置位代表二进制表示中1的个数.例如21 的二进制表示10101有 3 个计算置位.还有,1 不是 ...

  7. 《LeetCode刷题》804. 唯一摩尔斯密码词(java篇)

    题目描述: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 "-..." ...

  8. 【leetcode刷题】73.商品折扣后的最终价格——Java版

    ⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 法1 - 暴力:时间复杂度O(n^2) 对于每个i位置找j. 法2 - 单调栈 时间复杂度O(n) --leetcode此题热评 ...

  9. 【leetcode刷题】51.下一个更大元素 I——Java版

    ⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 算法不行,现在语文也不行了.我哭了,你们呢? --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 & ...

最新文章

  1. BZOJ.3527.[ZJOI2014]力(FFT)
  2. java免安装版配置,Tomcat(免安装版)的安装与配置 配置成windows服务
  3. mysql外键约束语句级连_mysql之外键约束(级联操作等) 父表子表
  4. ant编辑java忽略注释_java – 注释不起作用
  5. IO流,字节流文件拷贝示例 [FileInputStream FileOutputStream]
  6. 盘古分词工具学习笔记
  7. hbase占用内存过高_Hbase探究——如何避免一行数据过大导致加载至内存出现out of memory的情况...
  8. android驱动在win10系统上安装的心酸历程
  9. PHPStorm更换主题,调整背景和字体颜色
  10. visio2013专业版激活密匙
  11. python贝叶斯估计库_tsbngen一个python库,可从任意动态贝叶斯网络生成时间序列数据...
  12. linux .otf文件,如何在Linux上将OTF或是TTF字库案转成WOFF或是WOFF2网页字库案?
  13. 弱电系统集成服务器,智能化弱电系统集成(BMS系统集成工程)设计方案
  14. python美化excel_python3哪个库可以实现格式美化?
  15. 打印机扫描找不到计算机用户名,打印机扫描到pc显示不可用 打印机扫描到pc显示不可用的解决方法...
  16. js判断上传文件为图片格式、excel格式
  17. 图像算法---头发检测算法研究
  18. String转成JSON或String转为list后转为JSON或String转为map后转为JSON
  19. 杜克大学陈怡然教授转载一篇谈ChatGPT为何无法出现在中国的文章,一针见血
  20. 2021-09-29 计算BMI值(国际上常用的衡量人体胖瘦程度的一个标准)(要保留多少位有效数字可以用python内置的 round 函数)

热门文章

  1. linux系统编程布局,Linux下c语言的图形编程
  2. 教你Centos7中使用7zip压缩工具
  3. Ps 2021在M1 mac上导出 PNG 格式发生未知错误如何解决?
  4. WTL 自绘控件库 (CQSProgressBar)
  5. 【查询表内名字相同的人】
  6. 朱小坤:天工国际(天工集团)举办中国特钢研讨会
  7. php 上传文件后缀名,PHP文件上传后缀名与文件类型对照表
  8. java xmpp 框架_用于服务器端的好的XMPP Java库?
  9. Tcp三次握手/Tcp协议数据传输(服务器端开启多线程)
  10. 万用表测交流电压时测出的为有效值还是有效值?