Power of 2&3&4

之前從來沒練過這種題。。。

嚴(yán)重超時(shí)。。。。

我特別喜歡這個(gè)方法,比較全面的展示了對Binary的理解??梢园l(fā)現(xiàn),如果我們在數(shù)字前加上0x 數(shù)字就會自動(dòng)認(rèn)為是hexidecimal.?

不斷往右邊shift。 n= n>>1. 跟最優(yōu)解的原理是一樣的,n只能有一個(gè)1 如果是power of 2.所以最后ones必須只能為1.



最優(yōu)解:



Power of 3:



這題感覺只能用最暴力的loop,而且還沒有Binary 可以用。這邊的Run time 分析是一個(gè)重點(diǎn),logn的原因是因?yàn)槲覀冊谇髇能夠被3整除幾次。

還有這個(gè)條件設(shè)置的太厲害。比如說4 % 3 會等于1,那就不進(jìn)loop了,直接return 4==1 =false.

我之前一直在想如果用/的話,比如4/3 就會變成1,再/3就變成0了。。但是他這個(gè)case把這些都cover了


【這個(gè)solution有一點(diǎn)問題】主要是i有可能為小數(shù)。

Power of 4:


這里我用了power of 3的方法

因?yàn)閜ower of 4還是只能有一個(gè)1,所有我們判斷一下bitCount是不是=1.

還有一個(gè)比較tricky的地方就是要判斷1后面跟著的0有幾個(gè)。

比如100=4, 0的數(shù)量%2=0

10000 0的數(shù)量%2=0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容