LeetCode初級算法--其他01:位1的個數(shù)

LeetCode初級算法--其他01:位1的個數(shù)

搜索微信公眾號:'AI-ming3526'或者'計算機視覺這件小事' 獲取更多算法、機器學習干貨
csdn:https://blog.csdn.net/baidu_31657889/
csdn:https://blog.csdn.net/abcgkj/
github:https://github.com/aimi-cn/AILearners

一、引子

這是由LeetCode官方推出的的經(jīng)典面試題目清單~
這個模塊對應(yīng)的是探索的初級算法~旨在幫助入門算法。我們第一遍刷的是leetcode推薦的題目。
查看完整的劍指Offer算法題解析請點擊github鏈接:
github地址

二、題目

編寫一個函數(shù),輸入是一個無符號整數(shù),返回其二進制表達式中數(shù)字位數(shù)為 ‘1’ 的個數(shù)(也被稱為漢明重量)。

示例1:

輸入:00000000000000000000000000001011
輸出:3
解釋:輸入的二進制串 00000000000000000000000000001011 中,共有三位為 '1'。

示例2:

輸入:00000000000000000000000010000000
輸出:1
解釋:輸入的二進制串 00000000000000000000000010000000 中,共有一位為 '1'。

示例3:

輸入:11111111111111111111111111111101
輸出:31
解釋:輸入的二進制串 11111111111111111111111111111101 中,共有 31 位為 '1'。

提示:

  • 請注意,在某些語言(如 Java)中,沒有無符號整數(shù)類型。在這種情況下,輸入和輸出都將被指定為有符號整數(shù)類型,并且不應(yīng)影響您的實現(xiàn),因為無論整數(shù)是有符號的還是無符號的,其內(nèi)部的二進制表示形式都是相同的。
  • 在 Java 中,編譯器使用二進制補碼記法來表示有符號整數(shù)。因此,在上面的 示例 3 中,輸入表示有符號整數(shù) -3。

進階:

如果多次調(diào)用這個函數(shù),你將如何優(yōu)化你的算法?

1、思路

提供三種解法,調(diào)用函數(shù)懶蛋法;手動循環(huán)計算 1 的個數(shù);十進制轉(zhuǎn)二進制的方式。每次對 2 取余判斷是否是 1,是的話就 count = count + 1。詳情看代碼~

2、編程實現(xiàn)

python

class Solution(object):
    def hammingWeight(self, n):
        """
        :type n: int
        :rtype: int
        """
        #解法一:調(diào)用函數(shù)懶蛋法
        return bin(n).count('1')

        #解法二:手動循環(huán)計算 1 的個數(shù)。
        # n = bin(n)
        # count = 0
        # for c in n:
        #     if c == "1":
        #         count += 1
        # return count  

        #解法三:十進制轉(zhuǎn)二進制的方式。每次對 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資料

分享技術(shù),樂享生活:我們的公眾號計算機視覺這件小事每周推送“AI”系列資訊類文章,歡迎您的關(guān)注!

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容