国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

「leetcode」231.2的冪

劉東 / 1035人閱讀

摘要:原題給定一個整數(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

相關(guān)文章

  • [Leetcode] Power of Two and Power of Four 二之冪四之冪

    摘要:整除法復(fù)雜度時間空間思路最簡單的解法,不斷將原數(shù)除以,一旦無法整除,余數(shù)不為,則說明不是的冪,如果整除到,說明是的冪。二進制位計數(shù)法復(fù)雜度時間空間思路的冪有一個特性,就是它的二進制表達中只有開頭是,后面全是。 Power of Two Given an integer, write a function to determine if it is a power of two. 整除法...

    荊兆峰 評論0 收藏0
  • 求解 4 的冪次方的裝逼解法

    題目來源于 LeetCode 上第 342 號問題:4 的冪。題目難度為 Easy,目前通過率為 45.3% 。 題目描述 給定一個整數(shù) (32 位有符號整數(shù)),請編寫一個函數(shù)來判斷它是否是 4 的冪次方。 示例 1: 輸入: 16 輸出: true 示例 2: 輸入: 5 輸出: false 進階:你能不使用循環(huán)或者遞歸來完成本題嗎? 題目解析 這道題最直接的方法就是不停的去除以 4 ,看最終...

    objc94 評論0 收藏0
  • 額,又是一道裝逼解法的算法題

    摘要:題目難度為,目前通過率為。這個特殊的數(shù)有如下特點足夠大,但不能超過位,即最大為個它的二進制表示中奇數(shù)位為,偶數(shù)位為符合這兩個條件的二進制數(shù)是如果用一個的冪次方數(shù)和它做與運算,得到的還是的冪次方數(shù)。將這個二進制數(shù)轉(zhuǎn)換成進制表示。 題目來源于 LeetCode 上第 342 號問題:4 的冪。題目難度為 Easy,目前通過率為 45.3% 。 題目描述 給定一個整數(shù) (32 位有符號整數(shù))...

    Zack 評論0 收藏0
  • 70道前端LeetCode題目集合及視頻講解(持續(xù)更新中...)

    前端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...

    mayaohua 評論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月匯總(100 題攻略)

    摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經(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ū)別...

    tain335 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<