Power of Two

原创 2015年07月06日 17:01:13

1 题目描述

Given an integer, write a function to determine if it is a power of two.
题目出处:https://leetcode.com/problems/power-of-two/

2 解题思路

采用打表的方式,因为个数不是很多。
采用hashset方式,提高查找效率。

3 其他思路

采用按位与的思想,2的指数次方转化为二进制,只有一位为1,其他位全是0。参考网址:http://www.bubuko.com/infodetail-953320.html

4 源代码

package com.larry.easy;

import java.util.HashSet;

public class PowerOfTwo {
	public boolean isPowerOfTwo(int n) {
		//打表
		HashSet<Integer> hs = new HashSet<Integer>();
		hs.add(1);
		hs.add(2);
		hs.add(4);
		hs.add(8);
		hs.add(16);
		hs.add(32);
		hs.add(64);
		hs.add(128);
		hs.add(256);
		hs.add(512);
		hs.add(1024);
		hs.add(2048);
		hs.add(4096);
		hs.add(8192);
		hs.add(16384);
		hs.add(32768);
		hs.add(65536);
		hs.add(131072);
		hs.add(262144);
		hs.add(524288);
		hs.add(1048576);
		hs.add(2097152);
		hs.add(4194304);
		hs.add(8388608);
		hs.add(16777216);
		hs.add(33554432);
		hs.add(67108864);
		hs.add(134217728);
		hs.add(268435456);
		hs.add(536870912);
		hs.add(1073741824);
		
		boolean ret = hs.contains(n);
        return ret;
    }
	public static void main(String[] args) {
		/*System.out.println(Integer.MAX_VALUE);
		for(int i = 0; i < 36; i++)
			System.out.println("hs.add(" + (int)(Math.pow(2, i)) + ");");*/
	}
}


相关文章推荐

Non Power of Two Textures 无二次幂限制的纹理

无二次幂限制的纹理(Non-Power-of-Two Textures)   OpenGL仅支持分辨率为2mx2n的纹理。但现在我们可以使用“无二次幂限制”的纹理。   OpenGL only...
  • wolf96
  • wolf96
  • 2015年09月04日 14:40
  • 1608

Round Up To Power Of Two

这个标题应该说明了我们要做什么了,中文的意思是找出一个2^n的数,使其不小于给出的数字。举个例子吧: 如果给一个数字63,那么我需要获取不小于63的数字,但是这个数字需要是2的n次方了,所以 6...

关于LeetCode中Power of Two一题的理解

题目如下: Given an integer, write a function to determine if it is a power of two.      多么朴实无华的题干,输入一个...

[231] Power of Two

求一个整数是不是2的n次方
  • camlot_
  • camlot_
  • 2016年06月25日 19:50
  • 163

leetcode第231题:Power of Two

ProblemGiven an integer, write a function to determine if it is a power of two.题目给出一个整数,写一个函数判断它是否是2...

LeetCode 231. Power of Two 解题报告

LeetCode 231. Power of Two 解题报告

leetcode Power of Two java--代码小白开始苟延残喘第五天的刷题

苦逼的触及着码农之门:昨天刚开始想着从简单的题目开始刷题,就被这所谓的第一道easy题目刷的搞了一早上搞得蓬头垢面,我决定在坚持一点时间,如果自己码代码的能力依旧入刺之弱的话,就考虑毕业后就转行。。 ...

【LeetCode从零单刷】Number of 1 Bits & Power of Two

菜鸡单刷LeetCode系列!
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Power of Two
举报原因:
原因补充:

(最多只允许输入30个字)