Leetcode NO.231 Power of Two

原创 2015年07月10日 07:12:59

本题题目要求如下:

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

很简单的要求,不过一开始我居然没有想到解决问题的办法,用一种很傻的方法做的,后来感觉不对,看了提示,用位运算解决,才恍然大悟,用简单方法解决了问题。。

power of 2的数看十进制,没有什么特别的地方,但是转换成二进制之后,都是100000的形式,最高位是1,其余位都是0,然后,这个数减1,就变为011111,最高位(已消失)为0,之后都是1,所以这两个数按位与(&)则变为0000000000.。。根据这个特性,可以解决这道题,代码如下:

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }
        return !(n & (n-1));
    }
};

更新一种更为传统的做法:

public:
    bool isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }
        while ((n >> 1) << 1 == n) {
            n >>= 1;
        }
        return (n == 1) ? true: false;
    }
};


LeetCode 231. Power of Two 解题报告

LeetCode 231. Power of Two 解题报告

算法细节系列(2):231.Power of Two && Three

算法细节系列(2):231.Power of Two && Three 在刷leetCode时,遇到了一系列关于power of Number的问题,刚开始不以为然,以为用简单的递归就能求解,可直到看...

[231] Power of Two

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

Leetcode 231. Power of Two & 326. Power of Three & 342. Power of Four

231. Power of Two   Total Accepted: 69528 Total Submissions: 190898 Difficulty: Easy Given an ...

leetcode第231题:Power of Two

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

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

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

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

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

leetcode No4. Median of Two Sorted Arrays

Question: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the medi...

Leetcode NO.160 Intersection of Two Linked Lists

本题题目要求如下: Write a program to find the node at which the intersection of two singly linked lists be...

LeetCode No.4 Median of Two Sorted Arrays

LeetCode No.4 Median of Two Sorted Arrays
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode NO.231 Power of Two
举报原因:
原因补充:

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