摘要:原題給定一個整數(shù),編寫一個函數(shù)來判斷它是否是的冪次方。按位與的取值規(guī)則如下,等于等于等于等于。我們可以利用這個特性,判斷數(shù)字是否為的次冪。
原題
給定一個整數(shù),編寫一個函數(shù)來判斷它是否是 2 的冪次方。
示例 1:
輸入: 1 輸出: true 解釋: 20 = 1
示例 2:
輸入: 16 輸出: true 解釋: 24 = 16
示例 3:
輸入: 218 輸出: false思路
我們首先看一組數(shù)字的二進制, 2^n的二進制只有一位是1其余全是0,2^n - 1的二進制全是1。按位與的取值規(guī)則如下,1 & 1 等于 1; 1 & 0 等于 0;0 & 1 等于0;0 & 0等于0。所以2^n & 2^n-1等于0。我們可以利用這個特性,判斷數(shù)字是否為2的次冪。
// 2 0b10 // 1 0b01 // 0 0b10 & 0b01 === 0 // 4 0b100 // 3 0b011 // 0 0b100 & 0b011 === 0 // 256 0b100000000 // 255 0b011111111 // 0 0b100000000 & 0b011111111 === 0 // 128 0b10000000 // 127 0b01111111 // 0 0b10000000 && 0b01111111 === 0代碼 解法1
/** * @param {number} n * @return {boolean} */ var isPowerOfTwo = function(n) { if (n <= 0) { return false } if ((n & n - 1) === 0) { return true } return false };解法2
2^n必然會被1 << 31整除, 也可以利用這一點解答
/** * @param {number} n * @return {boolean} */ var isPowerOfTwo = function(n) { if (n <= 0) { return false } if ((1 << 31) % n === 0) { return true } return false };
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/106968.html
摘要:整除法復(fù)雜度時間空間思路最簡單的解法,不斷將原數(shù)除以,一旦無法整除,余數(shù)不為,則說明不是的冪,如果整除到,說明是的冪。二進制位計數(shù)法復(fù)雜度時間空間思路的冪有一個特性,就是它的二進制表達中只有開頭是,后面全是。 Power of Two Given an integer, write a function to determine if it is a power of two. 整除法...
題目來源于 LeetCode 上第 342 號問題:4 的冪。題目難度為 Easy,目前通過率為 45.3% 。 題目描述 給定一個整數(shù) (32 位有符號整數(shù)),請編寫一個函數(shù)來判斷它是否是 4 的冪次方。 示例 1: 輸入: 16 輸出: true 示例 2: 輸入: 5 輸出: false 進階:你能不使用循環(huán)或者遞歸來完成本題嗎? 題目解析 這道題最直接的方法就是不停的去除以 4 ,看最終...
摘要:題目難度為,目前通過率為。這個特殊的數(shù)有如下特點足夠大,但不能超過位,即最大為個它的二進制表示中奇數(shù)位為,偶數(shù)位為符合這兩個條件的二進制數(shù)是如果用一個的冪次方數(shù)和它做與運算,得到的還是的冪次方數(shù)。將這個二進制數(shù)轉(zhuǎn)換成進制表示。 題目來源于 LeetCode 上第 342 號問題:4 的冪。題目難度為 Easy,目前通過率為 45.3% 。 題目描述 給定一個整數(shù) (32 位有符號整數(shù))...
前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項2 88 合并兩個有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經(jīng)到題,所以后面會調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...
閱讀 888·2021-09-22 15:17
閱讀 1917·2021-09-22 15:06
閱讀 2211·2021-09-08 09:35
閱讀 5099·2021-09-01 11:43
閱讀 3476·2019-08-30 15:55
閱讀 2150·2019-08-30 12:48
閱讀 3150·2019-08-30 12:45
閱讀 1782·2019-08-29 17:31