LeetCode-231-2 的冪

題目描述:給你一個整數(shù) n,請你判斷該整數(shù)是否是 2 的冪次方。如果是,返回 true ;否則,返回 false 。
如果存在一個整數(shù) x 使得 n == 2^{x} ,則認為 n 是 2 的冪次方。
示例說明請見LeetCode官網(wǎng)。
?
鏈接:https://leetcode-cn.com/problems/power-of-two/?
著作權歸領扣網(wǎng)絡所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權,非商業(yè)轉(zhuǎn)載請注明出處。
解法一:二分法
首先,如果n是負數(shù),直接返回false;
然后通過二分法查找是否有符合條件的整數(shù),minPower和maxPower分別為整數(shù)范圍內(nèi)2的最小和最大次冪,過程如下:
mid賦值為maxPower和minPower的中間值;
判斷如果2的mid次冪等于n,則返回true;
如果2的mid次冪大于n,則將maxPower賦值為mid-1;
如果2的mid次冪小于你,則將minPower賦值為mid+1;
循環(huán)終止的條件就是minPower大于maxPower。
最后如果沒有符合條件的整數(shù),返回false。
【每日寄語】 駕馭命運的舵是奮斗,不抱有一絲幻想,不放棄一點機會,不停止一日努力。