摘要:題目要求判斷一個整數是否是的冪。思路和代碼當我們從二進制的角度來看,這個題目就非常簡單了。其實題目的要求等價于該整數對應的二進制數中,一共有幾個。該題目的難點在于考慮邊界情況,比如,即。
題目要求
Given an integer, write a function to determine if it is a power of two.
判斷一個整數是否是2的冪。
思路和代碼當我們從二進制的角度來看,這個題目就非常簡單了。其實題目的要求等價于該整數對應的二進制數中,一共有幾個1。該題目的難點在于考慮邊界情況,比如-2^32,即10000000000000000000000000000000。雖然它只有一個1,但是它不是2的冪。
代碼如下:
public boolean isPowerOfTwo(int n) { if(n==1) return true; while(n!=0){ if ((n & 1) == 1) break; n >>>= 1; } return n==0; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68436.html
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...
摘要:在線網站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學習。 這篇文章記錄我練習的 LeetCode 題目,語言 JavaScript。 在線網站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
三道基本相同的題目,都可以用位操作、遞歸和迭代來做。 Power of Two 1. Bit Manipulation -- 2 ms beats 21.88% public class Solution { public boolean isPowerOfTwo(int n) { return n>0 && (n&(n-1))==0; } } 2. Iterat...
摘要:整除法復雜度時間空間思路最簡單的解法,不斷將原數除以,一旦無法整除,余數不為,則說明不是的冪,如果整除到,說明是的冪。二進制位計數法復雜度時間空間思路的冪有一個特性,就是它的二進制表達中只有開頭是,后面全是。 Power of Two Given an integer, write a function to determine if it is a power of two. 整除法...
摘要:題目解析用加減法實現除法用減法,每次累加被減部分,累加商,以一個固定的倍數遞增坑注意循環的跳出便捷,的情況要注意。應用累加思想,可以用在提速上,效率提高如果,則是負的,則是正的 題目解析: 用加減法實現除法 用減法,每次累加被減部分,累加商, 以一個固定的倍數遞增 坑: 注意 while循環的跳出便捷,= 的情況要注意。應用:累加思想,可以用在提速上,效率提高 Given two ...
閱讀 3063·2021-11-24 10:34
閱讀 3322·2021-11-22 13:53
閱讀 2630·2021-11-22 12:03
閱讀 3598·2021-09-26 09:47
閱讀 3005·2021-09-23 11:21
閱讀 4772·2021-09-22 15:08
閱讀 3290·2021-07-23 10:59
閱讀 1258·2019-08-29 18:31