编程语言
首页 > 编程语言> > leetcode 算法题342 (简单083) 4的幂

leetcode 算法题342 (简单083) 4的幂

作者:互联网

leetcode 算法题342 (简单083) 4的幂

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

输入: 16
输出: true

输入: 5
输出: false

/**
 * @param {number} num
 * @return {boolean}
 */
var isPowerOfFour = function(num) {
    while(num > 3) {
      if(num & 4 !== 0) {
        return false;
      }
      num /= 4;
    }
    return num === 1;
};

执行用时 : 108 ms, 在所有 JavaScript 提交中击败了35.98%的用户

内存消耗 : 35.6 MB, 在所有 JavaScript 提交中击败了7.32%的用户

/**
 * @param {number} num
 * @return {boolean}
 */
var isPowerOfFour = function(num) {
  if(num < 4) {
    return num === 1;
  }
  if(num % 4 === 0) {
    return isPowerOfFour(num / 4);
  }
  return false;
};

执行用时 : 92 ms, 在所有 JavaScript 提交中击败了91.59%的用户

内存消耗 : 35.7 MB, 在所有 JavaScript 提交中击败了6.10%的用户

/**
 * @param {number} num
 * @return {boolean}
 */
var isPowerOfFour = function(num) {
  if(num === 0) {
    return false;
  }
  while(num & 3 === 0) {
    num >>= 2;
  }
  return num === 1;
};

执行用时 : 104 ms, 在所有 JavaScript 提交中击败了53.74%的用户

内存消耗 : 35.7 MB, 在所有 JavaScript 提交中击败了6.10%的用户

/**
 * @param {number} num
 * @return {boolean}
 */
var isPowerOfFour = function(num) {
  if(num === 0) {
    return false;
  }
  if((num & (num - 1)) > 0) {
    return false;
  }
  return (num & 0x55555555) === num;
};

执行用时 : 88 ms, 在所有 JavaScript 提交中击败了94.39%的用户

内存消耗 : 35.5 MB, 在所有 JavaScript 提交中击败了20.73%的用户

标签:return,提交,083,JavaScript,num,isPowerOfFour,342,false,leetcode
来源: https://blog.csdn.net/FYuu95100/article/details/101107472