Leetcode Day5 1
每日一題ing,感覺可以用到昨天的lowbit就用了,不過真的太慢了。。。
給你兩個整數(shù) left 和 right ,在閉區(qū)間 [left, right] 范圍內(nèi),統(tǒng)計并返回 計算置位位數(shù)為質(zhì)數(shù) 的整數(shù)個數(shù)。
計算置位位數(shù) 就是二進制表示中 1 的個數(shù)。
例如, 21 的二進制表示 10101 有 3 個計算置位。
?
class?Solution:
????def?countPrimeSetBits(self,?left:?int,?right:?int)?->?int:
????????def?lowbit(self,?x:?int)?->?int:
????????????return?x?&?(-x)
????????def?calculate1(self,?n:?int)?->?int:
????????????i?=?0
????????????while?n:
????????????????n?-=?lowbit(self,?n)
????????????????i?+=?1
????????????return?i
????????def?ifzhishu(self,?n:?int)?->?bool:
????????????if?n==1:return?False
????????????for?i?in?range(2,?int(pow(n,?0.5))+1):
????????????????if?n?%?i?==?0:
????????????????????return?False
????????????return?True
????????res?=?0
????????for?i?in?range(left,?right+1):
????????????tmp?=?calculate1(self,?i)
????????????res1?=?ifzhishu(self,?tmp)
????????????if?res1?==?True:?res?+=?1
????????return?res

總而言之沒有調(diào)庫,十分暴力……

大佬的話應(yīng)該是調(diào)了個bit_count函數(shù)然后打表,十分迅捷了

暴力是不會帶來快樂的.jpg