Easy-题目22:231. Power of Two

原创 2016年05月30日 20:08:12

题目原文:
Given an integer, write a function to determine if it is a power of two.
题目大意:
给出一个整数,判断是不是2的幂。
题目分析:
跟上题如出一辙,但还有一种方法是利用位运算,即2的幂的最高位是1,其余位全是0这一性质,判断n和n-1按位与是否等于0来解决。@15-信安-L。
源码:(language:c)
递归解法:

bool isPowerOfTwo(int n) {
    return (n==0||n==1)?n:(n%2?0:isPowerOfTwo(n/2));
}

按位与解法:

bool isPowerOfTwo(int n) {
  return (n&n-1)==0&&n>0;
}

暴力枚举:

bool isPowerOfTwo(int n) {
   return (n==1||n==2||n==4||n==8||n==16||n==32||n==64||n==128||n==256||n==512||n==1024||n==2048||n==4096||n==8192||n==16384||n==32768||n==65536||n==131072||n==262144||n==524288||n==1048576||n==2097152||n==4194304||n==8388608||n==16777216||n==33554432||n==67108864||n==134217728||n==268435456||n==536870912||n==1073741824);
}

成绩:
三种算法都是4ms,beats44.98%,众数4ms,55.02%。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

算法细节系列(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 解题报告

LeetCode 231. Power of Two 解题报告

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 ...

Round Up To Power Of Two

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

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

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

160. Intersection of Two Linked Lists(Linked List-Easy)

Write a program to find the node at which the intersection of two singly linked lists begins.

371. Sum of Two Integers [easy] (Python)

题目链接https://leetcode.com/problems/sum-of-two-integers/题目原文 Calculate the sum of two integers a and...

<LeetCode><Easy> 160 Intersection Of Two Listed Lists

Write a program to find the node at which the intersection of two singly linked lists begins. For ...
  • awsxsa
  • awsxsa
  • 2015年10月16日 16:22
  • 232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目22:231. Power of Two
举报原因:
原因补充:

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