Power of 2&3&4

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

嚴重超時。。。。

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

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



最優(yōu)解:



Power of 3:



這題感覺只能用最暴力的loop,而且還沒有Binary 可以用。這邊的Run time 分析是一個重點,logn的原因是因為我們在求n能夠被3整除幾次。

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

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


【這個solution有一點問題】主要是i有可能為小數。

Power of 4:


這里我用了power of 3的方法

因為power of 4還是只能有一個1,所有我們判斷一下bitCount是不是=1.

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

比如100=4, 0的數量%2=0

10000 0的數量%2=0

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容