LeetCode342. 4的幂

 这是上一道题2的幂的进阶,首先我们看和2的幂有什么不同。2的幂有1,2,4,8......,而4的幂有1,4,16,64,也就是说少了2,8,32......,我们再观察一下他们的二进制数  1:1  2:10  4:100  8:1000  16:10000  我们发现,满足4的幂的条件就是,在满足2的幂的前提下,二进制中1的位置必须是在奇数位。那么如何判断在奇数位?其实只要让其和0101 0101 0101 0101 ...这个二进制数对应的十进制做&即可,0101转换成十进制是5,那么最多的0101构成的十进制就是0x55555555

class Solution {
    public boolean isPowerOfFour(int num) {
        if(num <= 0)
            return false;
        boolean a = (num & (num - 1)) == 0;
        boolean b = (num & 0x55555555) != 0;
        return a && b;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hongten

一个demo告诉你优化算法的强大

11420
来自专栏深度学习之tensorflow实战篇

python 对矩阵进行复制操作 np.repeat 与 np.tile区别

python 对矩阵进行复制操作 np.repeat 与 np.tile区别 二者区别 二者执行的是均是复制操作; np.repeat:复制的是多维数组的...

645100
来自专栏tkokof 的技术,小趣及杂念

数学小记

结果为 2n + 1, 考虑到任一奇数都可以表示成这种形式,所以使用以下构造方法即可立即得到上述的b和c:

13130
来自专栏C/C++基础

迷宫问题(maze problem)——深度优先(DFS)与广度优先搜索(BFS)求解

给定一个迷宫,指明起点和终点,找出从起点出发到终点的有效可行路径,就是迷宫问题(maze problem)。

2.5K20
来自专栏程序生活

Leetcode-Easy 709. To Lower Case

因为很简单,自己尽量想多种方法来尝试实现,本来想使用ASCII码实现(chr,ord)但是太麻烦了,想来想去有回归到下面两种:

10330
来自专栏mathor

搜索(8)

19040
来自专栏数据结构与算法

1265. [NOIP2012] 同余方程

1265. [NOIP2012] 同余方程 ★☆   输入文件:mod.in   输出文件:mod.out 简单对比 时间限制:1 s   内存限制:128 M...

34860
来自专栏和蔼的张星的图像处理专栏

28. 搜索二维矩阵二分法

写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。 每行的第一个数大于上一行的最后一个整数。 样例...

17720
来自专栏游戏开发那些事

【Unity游戏开发】tolua之wrap文件的原理与使用

本文内容转载自:https://www.cnblogs.com/blueberryzzz/p/9672342.html 。非常感谢原作者慷慨地授权转载,比心!...

22040
来自专栏nummy

Uninformed search Python实现【译】

图的搜索可以分为uninformed搜索和informed搜索,两者的区别是前者是的搜索是盲目的,它不知道目标节点在哪,而后者是启发式的搜索。

16320

扫码关注云+社区

领取腾讯云代金券