leetcode解题报告233——Power of Two

原创 2015年07月08日 10:06:47

Given an integer, write a function to determine if it is a power of two.

题目属于easy。前两种解法是一个意思,很容易想到;第三种解法最好(没想到)。

代码:

package bitmanipulation;

//Given an integer, write a function to determine if it is a power of two.

public class PowerofTwo {

    public boolean isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }
        String s = Integer.toBinaryString(n);
        if (s.charAt(0) == '0') {
            return false;
        } else {
            for (int i = 1; i < s.length(); i++) {
                if (s.charAt(i) == '1') {
                    return false;
                }
            }
        }
        return true;
    }

    public boolean isPowerOfTwo2(int n) {
        if (n <= 0) {
            return false;
        }
        while (n > 0) {
            if (n != 1 && n % 2 == 1) {
                return false;
            }
            n = n >> 1;
        }
        return true;
    }

    public boolean isPowerOfTwo3(int n) {
        if (n <= 0) {
            return false;
        }
        return (n & (n - 1)) == 0;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(new PowerofTwo().isPowerOfTwo3(16));
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode 231. Power of Two 解题报告

LeetCode 231. Power of Two 解题报告

LeetCode 326. Power of Three 解题报告

LeetCode 326. Power of Three 解题报告

LeetCode 421 Maximum XOR of Two Numbers in an Array 解题报告

一道有意思的题目, 用到了异或运算的一个小特性. LeetCode 421 Maximum XOR of Two Numbers in an Array. Given a non-empty arra...

LeetCode 350. Intersection of Two Array II 解题报告

LeetCode 350. Intersection of Two Array II 解题报告

Leetcode (4) Median of Two Sorted Arrays 解题报告

题目:Median of Two Sorted Arrays 找到两排序数组的全部元素的中位数。

[LeetCode] Median of Two Sorted Arrays 解题报告

—— write for my baby, mua [题目] There are two sorted arrays nums1 and nums2 of size m and n respe...

UVA 113 Power of Cryptography 解题报告

Power of Cryptography  Background Current work in cryptography involves (among other things) l...

LeetCode 1.Two Sum 解题报告

LeetCode 1. Two Sum 解题报告

Leetcode (1) Two Sum 解题报告

Leetcode (1) Two Sum 在一个数组中找到两个数,使其和为目标值,返回下标。

LeetCode解题报告 1. Two Sum[easy]

前言 之前听说过很多次LeetCode在面试中的大量应用,通过本次算法课可以开始题目的练习觉得还是很不错的。 题目描述1. Two Sum[easy] Given an array of intege...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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