leetcode 342. Power of Four 解题报告

来源:互联网 发布:coc防空火箭升级数据 编辑:程序博客网 时间:2024/05/16 16:19

原题链接

解题思路

刚开始题目理解错了,不过仔细审题后轻松解决

  1. 首先把特殊数字处理了,即非正数和1
  2. 将要处理的数字num & (num-1)。这样可以得出其总共有几个1(二进制)
  3. 若只有最高位为1,那再判断其二进制0的总个数是否是2的倍数。(4的二进制是两个0)。
  4. 得出答案。

解题代码

public class Solution {    public boolean isPowerOfFour(int num) {        if(num<=0){            return false;        }        if(num ==1 ) return true;        int a = num & (num-1);        if(a==0&&(((Integer.toBinaryString(num)).length()-1)&1)==0) return true;        else return false;    }}
0 0
原创粉丝点击