每日leetcode第0088天 0342. Power of Four

这道题目是2的幂的一个进阶版。

首先我们知道所有4的幂一定是2的幂,所以2的幂需要满足的条件,4的幂也必须要满足。

也就是说整个数中只存在一个位有1。

接下来我们还需要去寻找一个更严苛的条件。

比如1,那么二进制是1

4的二进制是100

16的二进制是10000

64的二进制是1000000

不难发现1后面的0都是偶数个,我们也可以认为1出现的位置都是从右往左的第奇数位。

我们可以制作一个二进制数0b10101010101010101010101010101010去和n按位与,

若为0则代表这个1所在的位的确在奇数位,不然则在偶数位。



关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。