本文主要是介绍Leetcode--Java--342. 4的幂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4^x
样例描述
示例 1:输入:n = 16
输出:true
示例 2:输入:n = 5
输出:false
示例 3:输入:n = 1
输出:true
思路
树状数组lowbit应用 + sqrt
- 转化判断是否是2的幂,先取平方根,判断平方根是否是2的幂。
- lowbit可以快速获取一个数的最低位1,如果一个数是2的倍数,那么肯是最高位为1,其他位为0。所以用完lowbit还是等于自己。
代码
class Solution {public boolean isPowerOfFour(int n) {if (n <= 0) {return false;}int x = (int)Math.sqrt(n);//是平方根,并且平方根是2的幂return x * x == n && (x & -x) == x;}
}
这篇关于Leetcode--Java--342. 4的幂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!