【leetcode】劍指 Offer 15. 二進制中1的個數

BJFU_vth 2022-01-08 05:38:13 阅读数:902

leetcode offer

劍指 Offer 15. 二進制中1的個數

分析

這題能用很多種辦法做出來,但沒意義浪費時間。

  1. 除N取餘法
  2. python自帶轉換法
  3. 遞歸法

除N取餘法

class Solution:
def hammingWeight(self, n: int) -> int:
return self.chu_N_quyu(n)
def chu_N_quyu(self, n):
res = 0
while n:
res += n % 2
n //= 2
return res

python自帶轉換法

class Solution:
def hammingWeight(self, n: int) -> int:
return bin(n).count('1')

遞歸法

class Solution:
def hammingWeight(self, n: int) -> int:
return self.chu_N_quyu(n)
def chu_N_quyu(self, n):
if n == 0: return 0
return n % 2 + self.chu_N_quyu(n//2)
版权声明:本文为[BJFU_vth]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080538132750.html