劍指offer-10-Python實現(二進位制中1的個數)
題目內容:
解答思路:
把一個整數減去1,再和原來的整數做位與運算,會把該整數最右邊一個1變成0.也就是說,一個整數的二進位制有多少個1,就可以完成多少次這樣的操作。
可以寫出程式碼:
def func(n):
cnt = 0
while n:
n = (n-1)&n
cnt +=1
return cnt
print func(13)
#output:3
相關推薦
劍指offer-10-Python實現(二進位制中1的個數)
題目內容: 解答思路: 把一個整數減去1,再和原來的整數做位與運算,會把該整數最右邊一個1變成0.也就是說,一個整數的二進位制有多少個1,就可以完成多少次這樣的操作。 可以寫出程式碼: def func(n): cnt = 0 w
劍指offer刷題記錄11——二進位制中1的個數
題目描述 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。 將輸入的整數分成0,正,負三種情況分別討論。正數和0不必多說,當負數時,要將反碼的32位用0補全,補碼是取反加一,再求1的個數,所以可以不必求補碼,直接轉化成反碼加0,1和0的代數關係進行調
劍指Offer面試題:9.二進位制中1的個數
一、題目:二進位制中1的個數 題目:請實現一個函式,輸入一個整數,輸出該數二進位制表示中1的個數。例如把9表示成二進位制是1001,有2位是1。因此如果輸入9,該函式輸出2。 二、可能引起死迴圈的解法 一個基本的思路:先判斷整數二進位制表示中最右邊一位是不是1。接著把輸入的整數右移一位,此時
劍指offer-9-Python實現斐波那契(Fibonacci)數列
題目內容: 數列為:1,1,2,3,5,8… 解法一:遞迴方法 def JumpFloor(n): if(n==0):return 0 elif(n==1):return 1 elif(n==2):return 1
劍指offer66題--Java實現,c++實現和python實現 11.二進位制中1的個數
題目描述 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。 Python實現 # -*- coding:utf-8 -*- class Solution: def NumberOf1(self, n): cnt = 0 if n
二叉樹的深度[劍指offer]之python實現
題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 題目連結 -*- coding:utf-8 -*- # clas
二叉樹的映象[劍指offer]之python實現
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。 輸入描述: 二叉樹的映象定義:源二叉樹 8 / \ 6 1
平衡二叉樹[劍指offer]之python實現
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 題目連結 # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self
劍指offer-8- Python實現旋轉陣列的最小數
一、題目描述 二、解法 def minNumberInRotateArray(rotateArray): # write code here p1 = 0 p2 = len(rotateArray)-1 mid = p1
反轉連結串列[劍指offer]之python實現
題目描述 輸入一個連結串列,反轉連結串列後,輸出連結串列的所有元素。 題目連結 # -*- coding:utf-8 -*- # class ListNode: # def __init
劍指offer題目系列三(鏈表相關題目)
eight 信息 賦值 n) 內容 指針 alt 延續 合並兩個排序的鏈表 本篇延續上一篇劍指offer題目系列二,介紹《劍指offer》第二版中的四個題目:O(1)時間內刪除鏈表結點、鏈表中倒數第k個結點、反轉鏈表、合並兩個排序的鏈表。同樣,這些題目並非嚴
【Java】 劍指offer(56-2) 陣列中唯一隻出現一次的數字 《劍指Offer》Java實現合集 56-1) 陣列中只出現一次的兩個數字 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 在一個數組中除了一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。 思路 這道題中數字出現了三次,無法像56-1) 陣列
關於牛客網劍指offer程式設計題思路(棧和佇列篇)
相關題目來源 解題思路 1. 用兩個棧實現佇列 這道題阿里電話面試的時候問過,本來很簡單的,當時太不自信了qaq 首先一個stack是作為接受佇列的push輸入,另一個stack作為輸出pop,用效率比較高的方法是要pop的時候檢查一下stac
劍指Offer-29-java實現查詢陣列中出現次數超過一半的元素
思路: 陣列中有一個數字出現的次數超過陣列長度的一半,也就是說它出現的次數比其他所有數字出現次數的和還要多。 因此我們可以考慮在遍歷陣列的時候儲存兩個值: 一個是陣列中的一個數字, 一個是次數。當
劍指Offer——面試題31:整數中1出現的次數
整數中1出現的次數(從1到n整數中1出現的次數) 題目:求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。ACMer
劍指Offer-- 翻轉鏈表 (python版)
head 鏈表 pytho blog write ini pre 當前 返回 輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): #
牛客網《劍指offer》之Python2.7實現:二進位制中1的個數
題目描述 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。 思路 來源牛客網高玩: 如果一個整數不為0,那麼這個整數至少有一位是1。如果我們把這個整數減1,那麼原來處在整數最右邊的1就會變為0,原來在1後面的所有的0都會變成1(如果最右邊的1後
劍指Offer刷題筆記(java實現)_26.樹的子結構
題目描述: 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構)。 其實思路很簡單:我們的演算法就通過比較即可,因為是樹的遍歷比較所以第一時間想到了遞迴 先假設母樹為A,子樹為B (1)我們先去判斷節點的第一個點的值是
劍指Offer刷題筆記(java實現)_39.陣列中次數超過一半的數字
陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。 例如輸入陣列:{1,3,3,2,3,2,3,3,2}。由於2在陣列中出現了5次,超過陣列長度的一半,因此要輸出2。 三種解法: 第一種遍歷陣列,利用hashMap儲存每個數字出現的次數,時間複雜度O(n)
劍指Offer-二叉樹-(10)
知識點/資料結構:二叉樹 題目描述: 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。 思路 注意二叉樹的節點的定義:樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。 也就是三個屬性;