leetcode刷题笔记342 4的幂
生活随笔
收集整理的這篇文章主要介紹了
leetcode刷题笔记342 4的幂
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述:
給定一個(gè)整數(shù) (32位有符整數(shù)型),請(qǐng)寫(xiě)出一個(gè)函數(shù)來(lái)檢驗(yàn)它是否是4的冪。
示例:
當(dāng) num = 16 時(shí) ,返回 true 。 當(dāng) num = 5時(shí),返回 false。
問(wèn)題進(jìn)階:你能不使用循環(huán)/遞歸來(lái)解決這個(gè)問(wèn)題嗎?
?
題目分析:
如231題同樣思路,還是通過(guò)位操作來(lái)解決這道
首先判斷下輸入為0和負(fù)數(shù)的情況
然后分析4的冪的特點(diǎn)0,4,16
化為二進(jìn)制0,0100,00010000
跟求2的冪不同的是此處少了2,8
化為2進(jìn)制? ?,0010,00001000
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
? 4
? 8
?
我們嘗試使用位操作將2,8過(guò)濾掉
?
解答代碼:
C++版:
class Solution { public:bool isPowerOfFour(int n) {if (n<=0) return false;return ((n&(n-1))==0 && ((n&0x55555555)));} }; CodePython版:
class Solution:def isPowerOfFour(self, num):""" :type num: int:rtype: bool""" if num<=0:return Falsereturn ((num&(num-1))==0 and (bool(num&0x55555555))) Code?
轉(zhuǎn)載于:https://www.cnblogs.com/qflyue/p/8973355.html
總結(jié)
以上是生活随笔為你收集整理的leetcode刷题笔记342 4的幂的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.什么是数据化运营——《数据挖掘与数据
- 下一篇: 第五次会议记录:开始进一步需求分析,及初