Try   HackMD

leetcode解題:(Easy) 342. Power of Four

題目:https://leetcode.com/problems/power-of-four/description/

描述:判斷輸入的數字是否為4的次方數

解題思路:標準解法是使用對數基底變換方法,不過這題也可以看作判斷是否為2的次方數的延伸題,4的次方數跟2的次方數一樣用二進位制表示只會有1個位元為1,不過這次這些1只會出現在奇數位上,額外再用一個mask來判斷1是否出現在奇數位即可

程式碼:

class Solution { public boolean isPowerOfFour(int n) { //0x55555555 -> 01010101010101010101010101010101 return (n & (n-1)) == 0 && (n & 0x55555555) != 0; } }

時間複雜度:O(1)
空間複雜度:O(1)

tags: leetcode easy bitwise operate