当前位置: 首页 > 后端技术 > Java

LeetCode-231-2Powerof

时间:2023-04-02 00:45:52 Java

2Powerof2题目描述:给定一个整数n,请判断该整数是否为2的幂,如果是,则返回true;否则,返回false。如果存在满足n==$2^{x}$的整数x,则认为n是2的幂。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:二分法首先,如果n为负数,直接返回false;然后使用二分法查找是否存在满足条件的整数,minPower和maxPower是整数范围内2的最小和最大的幂,过程如下:将mid赋给maxPower和minPower的中间值;判断2的中次方是否等于n,则返回true;如果2的mid次幂大于n,则将maxPower赋值给mid-1;如果2的midpower小于你,setminPower赋值为mid+1;循环终止的条件是minPower大于maxPower。最后,如果没有满足条件的整数,则返回false。publicclassLeetCode_231{publicstaticbooleanisPowerOfTwo(intn){if(n<0){returnfalse;}intminPower=0,maxPower=30,mid;while(minPower<=maxPower){mid=(minPower+maxPower)/2;如果(n==Math.pow(2,mid)){返回真;}elseif(n