[leetcode-342]Power of Four(java)

原创 2016年06月01日 10:22:52

原题链接:https://leetcode.com/problems/power-of-four/
思路:首先判断是否是2的幂,如果是的话,再去判断是否为4的幂,判断2的幂要求整数的bit位中只有一个1,而这可以根据num & (num -1)来判断。
得到结果后,最佳的方案是能找到1后面有多少个0,然后这个个数对2取余,如果为0,表示可以整除。但是我没找到方法。

public class Solution {
    public boolean isPowerOfFour(int num) {
        if(num < 0)
            return false;
        int tmp = num-1;
        if((tmp & num) == 0){
            while(num != 0 && num != 1){
                num = num >> 2;
            }
            if(num == 1)
                return true;
        }
        return false;
    }
}

2、在网上看到了一种做法:思想是如果一个数为4的倍数,那么这个数-1一定可以被3整除,可以用数学归纳法很容易得到证明。

public class Solution {
    public boolean isPowerOfFour(int num) {
        if(num < 0)
            return false;
        int tmp = num-1;
        return (num & tmp) == 0 && tmp % 3 == 0;
    }
}

相关文章推荐

[leetcode] 342. Power of Four 解题报告

题目链接:https://leetcode.com/problems/power-of-four/ Given an integer (signed 32 bits), write a fu...

【Leetcode】342. Power of Four

方法一: 思路:递归,时间复杂度:O(lg(n)),空间复杂度:O(lg(n))。 public class Solution { public boolean isPowerOfFour(i...

LeetCode题解:342. Power of Four

题目链接:342. Power of Four题目描述: Given an integer (signed 32 bits), write a function to check whether ...
  • yums467
  • yums467
  • 2016年05月16日 15:55
  • 207

【一天一道LeetCode】#342. Power of Four

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目...

LeetCode 第 342 题(Power of Four)

LeetCode 第 342 题 Given an integer (signed 32 bits), write a function to check whether it is a powe...

LCP342 LeetCode 342. Power of Four

前言来写个简单的题目。 位运算题目 Acceptance : 34.11% Difficulty : Easy Given an integer (singed 32 bits)...

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

148. Sort List\191. Number of 1 Bits\476. Number Complement\342. Power of Four

题目描述 代码实现题目描述Sort a linked list in O(n log n) time using constant space complexity.对一个链表进行排序,时间复杂度为O...

Power of Four-Leetcode

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

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

苦逼的触及着码农之门:昨天刚开始想着从简单的题目开始刷题,就被这所谓的第一道easy题目刷的搞了一早上搞得蓬头垢面,我决定在坚持一点时间,如果自己码代码的能力依旧入刺之弱的话,就考虑毕业后就转行。。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode-342]Power of Four(java)
举报原因:
原因补充:

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