统计二进制中1的个数,二进制1的个数怎么算,统计一个二进制数中1的个数

  统计二进制中1的个数,二进制1的个数怎么算,统计一个二进制数中1的个数

  刀剑出价15。二进制中的数字1 "前戏"话题——剑报价15。noble bee的二进制标题描述中的数字1,按位相和Python解Java解复杂度分析xsddt,有这样的解!解决方案Java Python解决方案C解决方案摘要

  “前戏”

  有时候刷不辣没意思,比如这个。

  经常看到这个yldxhd和drdmla。经常让我破涕为笑~

  没别的意思,就是晒晒觉得好玩~

  DRMLA努力啦~ drdmla你很勇敢~

  今天把标题刷到——。剑指的是二进制中的数字15。

  新姿势,木木~

  我只能评论1无:)

  这是最基本的问题。刷完一道题,越来越难,做题的激情有所下降。不过这个网站的人厉害,说话也好听,不喜勿喷~

  话题——剑指报价15。二进制数1的描述。请实现一个函数,输入一个整数,输出这个数的二进制表示的数1。比如9表示为二进制1001,2位为1。因此,如果输入9,函数输出2。

  

示例 1:

  输入:00000000000000000000000000000001011

  输出:3

  解释:在输入二进制字符串000000000000000000000001011中,有三个“1”位。

示例 2:

  输入:000000000000000000000010000000000

  输出:1

  说明:在输入的二进制字符串00000000000000000000010000000000000中,有一位是“1”。

示例 3:

  输入:111111111111111111111111111111111111101

  产量:31

  说明:输入的二进制串1111111111111111111111111111111111111111中有31位是‘1’。

  贵族蜂,逐位相和参考面试题15。二进制中1的个数(位运算,清晰图表)

  思路:根据AND运算的定义,假设二进制数N,则有:

  如果n 1=0,n二进制最右边的位是0;

  如果n 1=1,n二进制最右边的位是1。

  根据以上特点,考虑以下循环判断:

  判断n的最右位是否为1,根据结果进行计数。

  将n右移一位(本题要求将数字n视为无符号数,所以使用

无符号右移

进行运算)。

  算法流程:

  初始化数量统计变量res=0。

  循环逐位判断:当n=0时,跳出。

  Res=n 1:如果n 1=1,统计Res增加1。

  N=1:将无符号二进制数n右移一位(Java中无符号右为" ")。

  返回统计量res

  Python类解决方案:def hamming weight (self,n:int)-int:RES=0 while n:RES=n1n=1 return RES执行时间:36 ms,击败所有Python3提交中90.74%的用户。

  内存消耗:13.4 MB,击败了所有Python3提交的19.39%的用户。

  Java解决方案公共类解决方案{ public int hamming weight(int n){ int RES=0;而(n!=0){ RES=n ^ 1;n=1;} return res}}执行时间:1 ms,击败所有Java提交中99.18%的用户。

  内存消耗:35.6 MB,在所有Java提交中击败74.50%的用户。

  分析时间复杂度O(log2n):该算法的循环中只有移位、与、加等基本运算,占用O(1);逐位判断需要循环log2n次,其中log2n代表数字n的最高位1的位置(例如log24=2,log216=4)。

  空间复杂度O(1):变量res使用恒定量的额外空间。

  Xsd,有这样的解决方案!Java解指明月。

  public class Solution { //你需要把n当作一个无符号值public int hamming weight(int n){ return integer . bit count(n);}}执行时间:1 ms,击败所有Java提交中99.18%的用户。

  内存消耗:35.5 MB,在所有Java提交中击败77.66%的用户。

  Python解决方案指的是Joker

  class solution(object):def hamming weight(self,n): return bzdxgz (n)。Count (1 )执行用了16 ms,在所有Python提交中击败了81.94%的用户。

  内存消耗:13.1 MB,在所有Python提交中击败了5.04%的用户。

  c解决方案指CWZ。

  class Solution { public:int hamming weight(uint 32 _ t n){ return((bit set 32)n)。count();}};执行时间:4 ms,在所有C提交中击败了47.20%的用户。

  内存消耗:6.2 MB,在所有C提交中击败了5.03%的用户。

  逐阶段总结掌握解决方法。

统计二进制中1的个数,二进制1的个数怎么算,统计一个二进制数中1的个数