摘要:題目描述輸入一個整數,輸出該數二進制表示中的個數。其中負數用補碼表示。代碼實現分析例如來說,二進制表示為,那么,,,可以看出來每次與操作都會消滅掉最右邊的,所以最終可以得出的二進制表示中有幾個
題目描述
輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。
代碼實現function NumberOf1(n) { var count = 0; while(n !== 0){ count++; n = n & (n-1); } return count; }分析
例如n=13來說,二進制表示為1101,那么:
n & (n-1) ——> 1101&1100 ——> 1100,count=1
n & (n-1) ——> 1100&1011 ——> 1000,count=2
n & (n-1) ——> 1000&0111 ——> 0000,count=3
可以看出來每次與操作都會消滅掉n最右邊的1,所以最終可以得出n的二進制表示中有幾個1.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95902.html
摘要:圖解第二種算法圖解代碼示例算法如果為真,說明拿到的是二進制序列的個數為算法為的時候說明已經拿完了,循環(huán)終止二進制序列中的個數以上代碼,還可做優(yōu)化在此僅作參考,若有更好的算法,還望能夠私信告知,多謝各位。 ?前言?: 算法是一個程序員的內功,能很好的體現程序員的編程思維,通過學習和掌握常見的算...
摘要:長話短說,讓我們來看一道題統(tǒng)計的個數給定一個非負整數,對于任意,,計算的值對應的二進制數中的個數,將這些結果返回為一個數組。第二版本的時間復雜度是最后版本的時間復雜度是,是的二進制數中的的個數,介于之間。 小胡子哥@Barret李靖給我推薦了一個寫算法刷題的地方leetcode.com,沒有ACM那么難,但題目很有趣。而且據說這些題目都來源于一些公司的面試題。好吧,解解別人公司的面試題...
摘要:于是翻出了機房里的這本學習數據結構與算法開始學習程序員的基礎知識。這本書用了我最熟悉的來實現各種數據結構和算法,而且書很薄,可以說是一本不錯的入門教程。隊列在頭部刪除元素,尾部添加元素。 本系列所有文章:第一篇文章:學習數據結構與算法之棧與隊列第二篇文章:學習數據結構與算法之鏈表第三篇文章:學習數據結構與算法之集合第四篇文章:學習數據結構與算法之字典和散列表第五篇文章:學習數據結構與算...
摘要:原題地址中國題目描述給定一個整數,返回結果尾數中零的數量。示例輸入輸出解釋尾數中有個零說明你算法的時間復雜度應為。分析首先暴力破解法就是直接把最終的結果求出來然后看末尾有幾個,但是這樣做的時間復雜度肯定是太大了。 原題地址:LeetCode中國-172 題目描述 給定一個整數 n,返回 n! 結果尾數中零的數量。 示例 1: 輸入: 3輸出: 0解釋: 3! = 6, 尾數中沒有零。示...
閱讀 3616·2021-11-24 10:22
閱讀 3686·2021-11-22 09:34
閱讀 2480·2021-11-15 11:39
閱讀 1528·2021-10-14 09:42
閱讀 3662·2021-10-08 10:04
閱讀 1553·2019-08-30 15:52
閱讀 847·2019-08-30 13:49
閱讀 3015·2019-08-30 11:21