LeetCode(剑指 Offer)- 15. 二进制中 1 的个数
Posted 放羊的牧码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 15. 二进制中 1 的个数相关的知识,希望对你有一定的参考价值。
题目链接:点击打开链接
题目大意:略
解题思路
相关企业
- 字节跳动
- 亚马逊
- 三七互娱
- CVTE 视源股份
- 腾讯(Tencent)
- 新浪
- 阿里巴巴
- 顺丰科技
- 微软(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