LeetCode(剑指 Offer)- 15. 二进制中 1 的个数

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 15. 二进制中 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(剑指 Offer)- 15. 二进制中 1 的个数的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II

leetcode-剑指 Offer 55 - II平衡二叉树

Leetcode刷题Python剑指 Offer 32 - I. 从上到下打印二叉树

Leetcode刷题Python剑指 Offer 32 - II. 从上到下打印二叉树 II

[LeetCode]剑指 Offer 32 - I. 从上到下打印二叉树

[LeetCode]剑指 Offer 32 - I. 从上到下打印二叉树