lintcode-142-O(1)时间检测2的幂次
2024-10-21 15:59:48
142-O(1)时间检测2的幂次
用 O(1) 时间检测整数 n 是否是 2 的幂次。
样例
n=4,返回 true;
n=5,返回 false.挑战
O(1) time
标签
比特位操作
思路
使用位操作, 2 的幂次的 2 进制形式中只包含一个 1,如1(0001),2(0010),4(0100)。其他数包含多个 1(0除外),如3(0011),所以只需要将 n 与 n-1 逐位与,即可判定。
code
class Solution {
public:
/*
* @param n: An integer
* @return: True or false
*/
bool checkPowerOf2(int n) {
// write your code here
if(n <= 0) {
return false;
}
return n & (n-1) ? false : true;
}
};
最新文章
- Hadoop组件构成
- 原生态PHP+mysql 实现分页
- MSXML使用教程
- SharePoint 2013 调用WCF服务简单示例
- Windows Server 2008 R2安装WAMPSERVER无法启动的解决方法
- C#基础之lock
- js克隆
- HTTP协议状态码的含义
- MySQL SHOW 语句大全
- javascript - 清空一个 array
- 关于页ASP.NET面布局
- ML01 机器学习后利用混淆矩阵Confusion matrix 进行结果分析
- ActiveMQ安装配置及实例
- CNN学习入门
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
- RobotFramework自动化2-自定义关键字
- postman设置环境变量,字段值经过json转换后数值字节长度超过上限的问题
- pix2pix-tensorflow搭建及其使用
- DB2 数据类型转换
- 【NOI2017】游戏 2-sat算法