leetcode_Power of Two
2015-08-07 08:31
302 查看
描述:
Given an integer, write a function to determine if it is a power of two.
思路:
1.很有意思的一道题目,大致有三种方法:
2.第一种对num进行向右移位,每次移动一个Bit位并和0x1作&运算,共需移位31次,统计num中1出现的次数,有且仅出现一次的话就返回true
3.第二种方法是令tempNum=1,让num和tempNum作&运算,每次移位结束将tempNum左移位,工需移位31次,1有且仅出现一次则返回true
4.第三种方法有点惨无人道,boolean flag=((num&(num-1))==0);flag为真的话则返回true
代码:
仅贴出第三种方法的代码:
public boolean isPowerOfTwo(int n)
{
if(n<=0)
return false;
return (n&(n-1))==0;
}
Given an integer, write a function to determine if it is a power of two.
思路:
1.很有意思的一道题目,大致有三种方法:
2.第一种对num进行向右移位,每次移动一个Bit位并和0x1作&运算,共需移位31次,统计num中1出现的次数,有且仅出现一次的话就返回true
3.第二种方法是令tempNum=1,让num和tempNum作&运算,每次移位结束将tempNum左移位,工需移位31次,1有且仅出现一次则返回true
4.第三种方法有点惨无人道,boolean flag=((num&(num-1))==0);flag为真的话则返回true
代码:
仅贴出第三种方法的代码:
public boolean isPowerOfTwo(int n)
{
if(n<=0)
return false;
return (n&(n-1))==0;
}
相关文章推荐
- 求最大连续子向量之和
- 关于少林事件的一点看法
- 剑指Offer面试题27(Java版):二叉搜索树与双向链表
- +-字符串 nyoj 915
- 40页PPT勾画“互联网颠覆性思维”----诠释互联网思维
- Openjudge5137 Chinese Repeating Crossbow(计算几何)
- 网络爬虫+HtmlAgilityPack+windows服务从博客园爬取20万博文
- (Android开发)Eclipse中如何恢复已删除文件
- 修改tomcat 7 默认为美国东部时间的问题
- scikit-learn(工程中用的相对较多的模型介绍):1.12. Multiclass and multilabel algorithms
- 20150805 Day07 数组,二重循环
- 简单探讨可牛影像软件中具有肤质保留功能的磨皮算法及其实现细节。
- Week 32
- Android中不同方向嵌套滑动的解决方案(ListView为例子)
- 分享
- 算法排序
- python中MySQLdb模块用法实例
- QT 总结(一)(1.某位设1或0 2.加载dll、lib库 3.char * 转换为 wchar_t * 4.textBrowser 显示乱码 追加 5.checkBox的使能)
- C++_避免调用复制构造函数
- Android 创建AVD各参数详解