您的位置:首页 > 其它

lintcode 容易题:Count 1 in Binary 二进制中有多少个1

2015-10-10 16:49 162 查看
题目:

二进制中有多少个1

49% 通过 计算在一个 32 位的整数的二进制表式中有多少个 1.

样例

给定 32 (100000),返回 1

给定 5 (101),返回 2

给定 1023 (111111111),返回 9

解题:

Java程序:

class Solution:
# @param num: an integer
# @return: an integer, the number of ones in num
def countOnes(self, num):
# write your code here
# return self.countOnes1(num) # 387 ms
# return self.countOnes2(num) # 418 ms
return self.countOnes3(num) # 398 ms

def countOnes1(self,num):
count = 0
while num!=0:
if num%2==1:
count+=1
num/=2
return count

def countOnes2(self,num):
count = 0
while num!=0:
count += num&0x01
num = num>>1
return count

def countOnes3(self,num):
count = 0
while num!=0:
num = num & (num-1)
count+=1
return count


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: