[leetcode]231. Power of Two326. Power of Three -- JavaScript 代码

    xiaoxiao2026-04-20  4

    /** * @param {number} n * @return {boolean} */ var isPowerOfTwo = function(n) { if(n===0){ return false; } while((n>>1)>0){ if((n & 1)==1){ return false; } n = n>>1; } if(n!=1){ return false; } return true; };

    这是一道简单题,使用循环或者递归判断n是否能被2整除即可。 但是,这道题最好的方法是使用位运算,可以大大的提高代码效率。

    除了位运算,第326题还提供了一种新的思路:使用Math.log函数:

    /** * @param {number} n * @return {boolean} */ var isPowerOfThree = function(n) { if(n===0){ return false; } var res = Math.log(n)/Math.log(3); var res_round = Math.round(res); if(Math.abs(res_round-res)<10e-15){ return true; } return false; };
    转载请注明原文地址: https://ju.6miu.com/read-1309042.html
    最新回复(0)