码迷,mamicode.com
首页 > 其他好文 > 详细

231. Power of Two

时间:2018-04-05 22:05:45      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:个数   print   static   pos   clear   ssi   amp   博客   net   

原题链接:https://leetcode.com/problems/power-of-two/description/
实现如下:

/**
 * Created by clearbug on 2018/2/26.
 *
 * 这道题目虽然级别为 easy,我初看也以为很简单。但是,苦思良久竟毫无对策。。。无奈之下,看了下面??参考里面所说的博客。
 */
public class Solution {

    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.isPowerOfTwo(7));
        System.out.println(s.isPowerOfTwo(8));
    }

    /**
     * 方法三:启用诀窍,放大招了
     *
     * Submission Detail: 10.29%
     * Runtime: 5 ms
     *
     * 这么牛逼的大招,提交结果却是这样子,没天理啊!!!
     *
     * @param n
     * @return
     */
    public boolean isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }

        return (n & (n - 1)) == 0;
    }

    /**
     * 方法二:判断 n 的二进制形式里面 1 的个数
     *
     * Submission Detail: 10.29%
     * Runtime: 5 ms
     *
     * @param n
     * @return
     */
    public boolean isPowerOfTwo2(int n) {
        if (n <= 0) {
            return false;
        }

        int count = 0;
        while (n >= 1) {
            if ((n & 1) == 1) {
                count++;
            }
            n >>>= 1;
        }
        if (count == 1) {
            return true;
        }
        return false;
    }

    /**
     * 方法一:逐级判断,可用递归或者循环迭代实现
     *
     * Submission Detail: 5.27%
     * Runtime: 6 ms
     *
     * @param n
     * @return
     */
    public boolean isPowerOfTwo1(int n) {
        if (n <= 0) {
            return false;
        }

        if (n == 1) {
            return true;
        }

        if (n >= 2 && n % 2 == 0) {
            return isPowerOfTwo(n / 2);
        }

        return false;
    }

}

参考

https://blog.csdn.net/chenchaofuck1/article/details/51226899

231. Power of Two

标签:个数   print   static   pos   clear   ssi   amp   博客   net   

原文地址:https://www.cnblogs.com/optor/p/8724332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!