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

嚴重超時。。。。

我特別喜歡這個方法,比較全面的展示了對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
