leetcode刷题231. 2的幂

题目描述:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例1 :

输入: 1
输出: true
解释: 20 = 1

示例2 :

输入: 16
输出: true
解释: 24 = 16

示例3 :

输入: 218
输出: false

思路:暴力求解
注意:n=0的情况。

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if(n<=0) return false;
        while(n%2==0){
            n /= 2;
        }
        if(n==1) return true;
        return false;
    }
};

思路:位运算

class Solution {
public:
    bool isPowerOfTwo(int n) {
        return n <= 0 ? false : ((n & (n-1)) == 0);
    }
};
发布了29 篇原创文章 · 获赞 0 · 访问量 512

猜你喜欢

转载自blog.csdn.net/weixin_43022263/article/details/104269721