package com.heu.wsq.leetcode.inoffer;
/**
* 剑指 Offer 15. 二进制中1的个数
* @author wsq
* @date 2020/12/6
* 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。
*
* 示例 1:
* 输入:00000000000000000000000000001011
* 输出:3
* 解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。
*
* 示例 2:
* 输入:00000000000000000000000010000000
* 输出:1
* 解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。
*
* 链接:https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof
*/
public class Offer15 {
// you need to treat n as an unsigned value
/**
* 逐位与1做"与"操作
* @param n
* @return
*/
public int hammingWeight(int n) {
int sum = 0;
while(n != 0){
if((n & 1) != 0){
sum++;
}
n >>>= 1;
}
return sum;
}
}
剑指 Offer 15. 二进制中1的个数
最新推荐文章于 2025-04-30 11:28:26 发布