搜索微信公衆號:'AI-ming3526'或者'計算機視覺這件小事' 獲取更多算法、機器學習乾貨
csdn:https://blog.csdn.net/baidu_31657889/
csdn:https://blog.csdn.net/abcgkj/
github:https://github.com/aimi-cn/AILearnerspython
這是由LeetCode官方推出的的經典面試題目清單~
這個模塊對應的是探索的初級算法~旨在幫助入門算法。咱們第一遍刷的是leetcode推薦的題目。
查看完整的劍指Offer算法題解析請點擊github連接:
github地址git
編寫一個函數,輸入是一個無符號整數,返回其二進制表達式中數字位數爲 ‘1’ 的個數(也被稱爲漢明重量)。github
示例1:面試
輸入:00000000000000000000000000001011 輸出:3 解釋:輸入的二進制串 00000000000000000000000000001011 中,共有三位爲 '1'。
示例2:算法
輸入:00000000000000000000000010000000 輸出:1 解釋:輸入的二進制串 00000000000000000000000010000000 中,共有一位爲 '1'。
示例3:編程
輸入:11111111111111111111111111111101 輸出:31 解釋:輸入的二進制串 11111111111111111111111111111101 中,共有 31 位爲 '1'。
提示:微信
進階:機器學習
若是屢次調用這個函數,你將如何優化你的算法?函數
提供三種解法,調用函數懶蛋法;手動循環計算 1 的個數;十進制轉二進制的方式。每次對 2 取餘判斷是不是 1,是的話就 count = count + 1。詳情看代碼~學習
python
class Solution(object): def hammingWeight(self, n): """ :type n: int :rtype: int """ #解法一:調用函數懶蛋法 return bin(n).count('1') #解法二:手動循環計算 1 的個數。 # n = bin(n) # count = 0 # for c in n: # if c == "1": # count += 1 # return count #解法三:十進制轉二進制的方式。每次對 2 取餘判斷是不是 1,是的話就 count = count + 1。 # count = 0 # while n: # res = n % 2 # if res == 1: # count += 1 # n //= 2 # return count
AIMI-CN AI學習交流羣【1015286623】 獲取更多AI資料
分享技術,樂享生活:咱們的公衆號計算機視覺這件小事每週推送「AI」系列資訊類文章,歡迎您的關注!
本文由博客一文多發平臺 OpenWrite 發佈!