Using O(1) time to check whether an integer n is a power of 2.
Have you met this question in a real interview? Yes
Example
For n=4, return true;
For n=5, return false;
Challenge
O(1) time
n&(n-1) 1的个数
n-n&(n-1) 末位1
class Solution {
/*
* @param n: An integer
* @return: True or false
*/
public boolean checkPowerOf2(int n) {
// write your code here
if(n<1) return false ;
else return (n&(n-1))==0;
}
};
本文介绍了一种使用O(1)时间复杂度的方法来检查一个整数是否为2的幂。通过简单的位操作n & (n-1),可以高效地判断任意整数n是否满足条件。
1073

被折叠的 条评论
为什么被折叠?



