Loading

剑指 Offer 15. 二进制中1的个数

思路

 

 

 

 

 

 

代码实现

方法一:

 1 class Solution {
 2 public:
 3     int hammingWeight(uint32_t n) {
 4         int ans = 0;
 5         while(n != 0) {
 6             ans += (n & 1);
 7             n = n >> 1;
 8         }
 9 
10         return ans;
11     }
12 };

方法二:

 1 class Solution {
 2 public:
 3     int hammingWeight(uint32_t n) {
 4         int ans = 0;
 5         while(n != 0) {
 6             ans++;
 7             n &= n-1;
 8         }
 9 
10         return ans;
11     }
12 };

 

参考

面试题15. 二进制中 1 的个数(位运算,清晰图解)

posted @ 2020-10-20 12:35  拾月凄辰  阅读(75)  评论(0编辑  收藏  举报