剑指offer--15二进制中1的个数
Posted Anrys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer--15二进制中1的个数相关的知识,希望对你有一定的参考价值。
题目
代码
法一:从右往左一次遍历查找1
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int count = 0;
while(n!=0) {
if((n&1)==1) count++;
n = n >> 1 ;
}return count;
}
}
法二:当前数与比其小1的数与运算即消除一个1.以此计数。
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int count = 0;
while(n!=0) {
n = n&(n-1);
count++;
}return count;
}
}
结果
以上是关于剑指offer--15二进制中1的个数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 15. 二进制中 1 的个数
LeetCode(剑指 Offer)- 15. 二进制中 1 的个数