Power of 2&3&4

之前从来没练过这种题。。。

严重超时。。。。

我特别喜欢这个方法,比较全面的展示了对Binary的理解。可以发现,如果我们在数字前加上0x 数字就会自动认为是hexidecimal. 

不断往右边shift。 n= n>>1. 跟最优解的原理是一样的,n只能有一个1 如果是power of 2.所以最后ones必须只能为1.



最优解:



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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容