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