[LeetCode]Power of Two
2015-07-28 17:50
239 查看
Given an integer, write a function to determine if it is a power of two.
这道题看似很简单,也确实简单,只要一直除2,然后判断是否是2的幂次方。
但是这样速度势必不快,我是这样做的
后来看了discuss里面的一个方法,只能自己思维太不灵敏了。。
主要想法是利用Value&(Value-1)按位与,稍微想想就知道,这个是求数二进制情况下,末尾有多少个连续的0
这道题看似很简单,也确实简单,只要一直除2,然后判断是否是2的幂次方。
但是这样速度势必不快,我是这样做的
class Solution { public: bool isPowerOfTwo(int n) { if (n == 0) return false; if (n == 1) return true; int base = 2; int temp = n; while (n % 2 == 0) { if (n % base == 0) { n = n / base; base *= base; } else { base = 2; } } if (n == 1) return true; return false; } };
后来看了discuss里面的一个方法,只能自己思维太不灵敏了。。
主要想法是利用Value&(Value-1)按位与,稍微想想就知道,这个是求数二进制情况下,末尾有多少个连续的0
bool isPowerOfTwo(int n) { if(n<=0) return false; if(n&(n-1)) return false; return true;
相关文章推荐
- onBackPressed中的小问题
- Fedora21启用iptables服务及使用firewalld服务注意事项
- VC操作Image的三种方法(收集)
- [第1章]数据:CoreData的简单使用
- python基础教程总结15——5 虚拟茶话会
- 合并两个文件内容等相关操作
- mysql之数据库基本理念
- 解析 Linux 内核可装载模块的版本检查机制
- 解析css中的选择符命名
- http 协议详解
- jQuery Tmpl不详细讲解
- ANDROID编译过程的问题及解决
- Python操作Word批量生成文章的方法
- HTML表格布局实际使用详解
- 用actionbar tab来实现类似Tabhost的功能
- Single Number
- 如何高效检索论文
- LeetCode_111 Minimum Depth of Binary Tree
- js验证表单大全
- shell学习五十二天----删除进程kill命令