LeetCode(算法)- 191. 位 1 的个数

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(算法)- 191. 位 1 的个数相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路

相关企业

  • 字节跳动
  • 亚马逊
  • 三七互娱
  • CVTE 视源股份
  • 腾讯(Tencent)
  • 新浪
  • Facebook
  • 阿里巴巴
  • 顺丰科技
  • 微软(Microsoft)
  • 英特尔(Intel)

AC 代码

  • Java
// 解决方案(1)
public class Solution 
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) 
		String str = Integer.toBinaryString(n);
		char[] chars = str.toCharArray();
		int count = 0;
		for (char c : chars) 
			if (c == '1') 
				count++;
			
		
		return count;
	

 
// 解决方案(2)
public class Solution 
    public int hammingWeight(int n) 
        int res = 0;
        while(n != 0) 
            res += n & 1;
            n >>>= 1;
        
        return res;
    

 
// 解决方案(3)
public class Solution 
    public int hammingWeight(int n) 
        int res = 0;
        while(n != 0) 
            res++;
            n &= n - 1;
        
        return res;
    
  • C++
// 解决方案(1)
class Solution 
public:
    int hammingWeight(uint32_t n) 
        unsigned int res = 0; // c++ 使用无符号数
        while(n != 0) 
            res += n & 1;
            n >>= 1;
        
        return res;
    
;
 
// 解决方案(2)
class Solution 
public:
    int hammingWeight(uint32_t n) 
        int res = 0;
        while(n != 0) 
            res++;
            n &= n - 1;
        
        return res;
    
;

以上是关于LeetCode(算法)- 191. 位 1 的个数的主要内容,如果未能解决你的问题,请参考以下文章

⭐算法入门⭐《位运算 - 位与》简单02 —— LeetCode 191. 位1的个数

leetcode算法191.位1的个数

Leetcode刷题100天—191. 位1的个数( 数学)—day92

Leetcode刷题100天—191. 位1的个数( 数学)—day92

Leetcode刷题100天—191. 位1的个数( 数学)—day92

LeetCode 191. 位1的个数