zoukankan      html  css  js  c++  java
  • LeetCode Number of 1 Bits 计算1的个数

    题意:

      提供一个无符号32位整型uint32_t变量n,返回其二进制形式的1的个数。

    思路:

      考察二进制的特性,设有k个1,则复杂度为O(k)。考虑将当前的数n和n-1做按位与,就会将n的最后一个1去掉,重复这样的操作就可以统计出1的个数了。(2015年春季 小米实习生的笔试题之一)

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

    python3

     1 class Solution(object):
     2     def hammingWeight(self, n):
     3         """
     4         :type n: int
     5         :rtype: int
     6         """
     7         cnt=0
     8         while n:
     9             cnt+=1
    10             n=n&(n-1)
    11         return cnt
    AC代码
  • 相关阅读:
    接口测试基础07
    性能测试基础01
    接口测试基础06
    将java list转换为js的数组
    java 网络编程
    java分页
    单例模式
    适配器模式
    抽象工厂模式
    工厂模式
  • 原文地址:https://www.cnblogs.com/xcw0754/p/4412907.html
Copyright © 2011-2022 走看看