美文网首页
342. 4的幂-leetcode

342. 4的幂-leetcode

作者: 佛祖拿屠刀 | 来源:发表于2018-12-25 22:25 被阅读0次

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。

示例 1:

输入: 16
输出: true

示例 2:

输入: 5
输出: false

进阶:
你能不使用循环或者递归来完成本题吗?


使用循环或者递归很简单,就不会赘述了

如何使用位运算来完成这个题目

首先需要判断是不是2的幂

(n - 1) & n == 0 真为是 假为否

在观察4的幂的二进制特色

1
100
10000
1000000
...

如果这个数是2的幂,且奇数位为1,那么这个数同样也是4的幂

n & 0x55555555 != 0 真为是 假为否

代码如下:

class Solution {
    func isPowerOfFour(_ num: Int) -> Bool {
        if num & (num - 1) == 0 {
           return (num & 0x55555555) > 0
        }
        return false
    }
}

相关文章

  • Leetcode 342. 4的幂

    题目描述 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 输入: ...

  • 342. 4的幂-leetcode

    给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 示例 2: 进阶:...

  • 2019-04-08

    LeetCode 342. Power of Four Description Given an integer ...

  • 【LeetCode】4的幂

    题目描述: 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。示例 1:输入: 1...

  • Swift - LeetCode - 4的幂

    题目 给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true;否则,返回 false。 整数...

  • 额,又是一道装逼解法的算法题

    题目来源于 LeetCode 上第 342 号问题:4 的幂。题目难度为 Easy,目前通过率为 45.3% 。 ...

  • 一起学算法-231. 2 的幂

    一、题目 LeetCode-231. 2 的幂链接:https://leetcode-cn.com/problem...

  • LeetCode刷题-4的幂

    前言说明 算法学习,日常刷题记录。 题目连接 4的幂[https://leetcode-cn.com/proble...

  • Leetcode 342. Power of Four

    文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. S...

  • LeetCode*342. Power of Four

    LeetCode题目 题目: Given an integer (signed 32 bits), write a...

网友评论

      本文标题:342. 4的幂-leetcode

      本文链接:https://www.haomeiwen.com/subject/penqlqtx.html