231. 2 的幂 简单 递归(二分)二进制
Published on 2022-11-17 23:01 in 暂未分类 with 林动

231. 2 的幂 简单 递归(二分)二进制

    1. 2 的幂
      给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

    如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

    示例 1:

    输入:n = 1
    输出:true
    解释:20 = 1
    示例 2:

    输入:n = 16
    输出:true
    解释:24 = 16
    示例 3:

    输入:n = 3
    输出:false
    示例 4:

    输入:n = 4
    输出:true
    示例 5:

    输入:n = 5
    输出:false

    class Solution {
        public boolean isPowerOfTwo(int n) {
            if(n==1)return true;
            if(n<=0||(n&1)==1)return false;
            return isPowerOfTwo(n>>1);
        }
    }
    

    二进制

    class Solution {
        public boolean isPowerOfTwo(int n) {
            return n>0&&(n&-n)==n;
        }
    }
    
    class Solution {
        public boolean isPowerOfTwo(int n) {
            //return n>0&&(n&-n)==n;
            return n>0&&(n&(n-1))==0;
        }
    }
    
    posted @   林动  阅读(8)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
    · 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
    · 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
    · 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
    · 【自荐】一款简洁、开源的在线白板工具 Drawnix
    点击右上角即可分享
    微信分享提示