文档章节

LeetCode(65)-Power of Four

fengsehng
 fengsehng
发布于 2016/11/09 09:16
字数 182
阅读 2
收藏 0

题目:

Given an integer (signed 32 bits), write a function to check whether it is a power of 4.

Example:
Given num = 16, return true. Given num = 5, return false.

Follow up: Could you solve it without loops/recursion?

思路:

  • 题意是判断一个32位的符号整数是不是4的次方
  • 对于2的次方的判断是n&(n-1)== 0
    10 => 2
    100 => 4
    1000 => 8
    10000 => 16
    100000 => 32
    1000000 => 64
    10000000 => 128
    100000000 => 256
    1000000000 => 512
    10000000000 => 1024
    100000000000 => 2048
    1000000000000 => 4096
    10000000000000 => 8192
    100000000000000 => 16384
    由图中观察可以看出来,4的次方,1都在从右往左数的奇数位,1,3,5等
    所有从2的次方移除4的次方,与上01010101010101010101010101010101,十六进制是0x555555555

代码:

public class Solution {
    public boolean isPowerOfFour(int num) {
        return num > 0 && (num&(num -1)) == 0 && (num & 0x55555555) != 0;
    }
}

© 著作权归作者所有

共有 人打赏支持
fengsehng
粉丝 4
博文 284
码字总数 214494
作品 0
朝阳
程序员
私信 提问
leetcode: power of three 三种解法

一、题目 leetcode 上有这么一道题,power of three. 题目如下: Given an integer, write a function to determine if it is a power of three. 要求: Could you do it without using any ......

u011303443
2017/08/01
0
0
Power of Four(leetcode342)

Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example 1: Input: 16Output: true Example 2: Input: 5Output: false Follow up: Could you s......

woshixin
2018/12/20
0
0
Power of Three(leetcode326)

Given an integer, write a function to determine if it is a power of three. Example 1: Input: 27Output: true Example 2: Input: 0Output: false Example 3: Input: 9Output: true Exam......

woshixin
2018/12/18
0
0
Leetcode 342. Power of Four

文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Version 1 Version 2 Version 3 Reference https://leetcode.com/problems/power-of-four/description/......

SnailTyan
2018/09/04
0
0
PowerOfTwo(leetcode231)

given an integer, write a function to determine if it is a power of two. Example 1: Input: 1Output: trueExplanation: 20 = 1 Example 2: Input: 16Output: trueExplanation: 24 = 16 ......

woshixin
2018/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
27分钟前
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
今天
4
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
今天
2
0
你真的需要了解一下CSS变量 var()的用法

当Web项目变得越来越大时,他的CSS会变得像天文数字那么大而且还变得混乱。为了帮助我们解决这个问题,新的CSS变量很快就会出现在主流浏览器中,它让开发人员能够重用并轻松编辑重复出现的C...

前端小攻略
今天
1
0
嵌入式应用选择合适的微控制器

为嵌入式应用选择微控制器有几个原因,即低成本,高集成度,增加可靠性,节省空间等。 准备所需硬件接口列表使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微...

linux-tao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部