找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 688|回复: 2
收起左侧

[资源分享] 3: Power of Two

[复制链接]

19

主题

2

精华

83

积分

资深会员

Rank: 2

积分
83
发表于 10-3-2015 03:00 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我们知道2^n在二进制表示中,只有一个bit上是1,其他bit都是0,所以我们只要验证这个数的lowbit等于这个数即可,注意0不是2^n,但0满足lowbit=0,所以要排除0,对于lowbit的求法,可以参考树状数组,即n&-n
  1. class Solution {
  2. public:
  3.         bool isPowerOf2(int n) {
  4.                 return n && n == (n&-n);
  5.         }
  6. };
复制代码


10

主题

1

精华

374

积分

高级会员

Rank: 3Rank: 3

积分
374
发表于 11-7-2016 12:58 PM | 显示全部楼层
public boolean isPowerOfTwo(int n) {
        return Integer.bitCount(n) == 1 && n > 0;
    }
回复 支持 1 反对 0

使用道具 举报

1

主题

0

精华

59

积分

资深会员

Rank: 2

积分
59
发表于 11-9-2016 08:24 PM | 显示全部楼层
的确简洁很多了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表