二进制中1的个数(简单难度)

简介: 二进制中1的个数(简单难度)

目录

题目概述(中等难度)

思路与代码

思路展现

代码示例

题目概述(中等难度)

2.png


题目链接:

点我进入leetcode


思路与代码

思路展现

这道题目思路依然取自我们K神大佬,这里就不再做过多的赘述了

关于逻辑右移,左移,右移还不清楚的小伙伴可以来看这篇题解:

点我进入题解

或者来看我的这篇博客:

点我进入博客

二进制减法不会的同学可以来看这篇博客:

点我进入博客


代码示例

代码1:

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
       int res = 0;
       while(n != 0) {
          //这里直接+=是非常便捷的写法,无需使用if语句判断n&1是否等于1或者0
           res += n&1;
           //逻辑右移
           n >>>= 1;
       }
       return res;
    }
}

2.png


代码2:

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
       int res = 0;
       while(n != 0) {
        //先把1的个数统计后,再去做与运算.
           res++;
           n &= (n-1);
       }
       return res;
    }
}

2.png

相关文章
|
7月前
|
存储 算法
【三种方法】求一个整数存储在内存中二进制中的1的个数附两道课外练习题
【三种方法】求一个整数存储在内存中二进制中的1的个数附两道课外练习题
53 0
|
7月前
|
算法
算法题 — 整数转二进制,查找其中1的数量
算法题 — 整数转二进制,查找其中1的数量
53 0
判断一个数字是否可以表示成三的幂的和(难度:中等)
判断一个数字是否可以表示成三的幂的和(难度:中等)
|
7月前
|
存储 C语言
C语言训练:三个字符串比较大小,实现两个整数数的交换统计二进制中1的个数
C语言训练:三个字符串比较大小,实现两个整数数的交换统计二进制中1的个数
|
算法
求两个数对应二进制位不同的个数(深度剖析+补充例题)
求两个数对应二进制位不同的个数(深度剖析+补充例题)
186 0
求两个数对应二进制位不同的个数(深度剖析+补充例题)
数组中数字出现的次数(中等难度)
数组中数字出现的次数(中等难度)
99 0
数组中数字出现的次数(中等难度)
排序数组中只出现一次的数字(中等难度,三种方法)
排序数组中只出现一次的数字(中等难度,三种方法)
116 0
排序数组中只出现一次的数字(中等难度,三种方法)
|
存储
第一个只出现一次的字符(简单难度)
第一个只出现一次的字符(简单难度)
63 0
第一个只出现一次的字符(简单难度)
字符串中的单词数(简单难度)
字符串中的单词数(简单难度)
87 0
字符串中的单词数(简单难度)
|
机器学习/深度学习 算法
算法 | 妙法统计二进制中1的个数
二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。数字电子电路中,逻辑门的实现直接应用了二进制,现代的计算机和依赖计算机的设备里都使用二进制。每个数字称为一个比特(Bit,Binary digit的缩写)
152 0
算法 | 妙法统计二进制中1的个数