• Leetcode 231. 2 的幂


    地址 https://leetcode-cn.com/problems/power-of-two/

    给你一个整数 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
     
    
    提示:
    -2^31 <= n <= 2^31 - 1
    

    解答
    二进制下,所有2的幂的数字都是有1个1和0构成
    1 = 0b1 2 = 0b10 4=0b100 8 = 0b1000
    其他数字则没有这个特性 比如
    6=0b110 5=0b101

    那么我们不断右移该数,如果只存在1个1,说明他就是2的幂次.否则不是.

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            if(n==0) return false;
            int flag=0;
            while(n!=0){
                if(n&1 && flag == 1){ return false; }
                else if(n&1){flag = 1;}
                n>>=1;
            }
            
            return true;
        }
    };
    

    我的视频题解空间

  • 相关阅读:
    C# switch-case
    Python学习日记之中文支持
    C++学习笔记(一)之指针
    python CGI 编程实践
    linux 配置 python3 CGI
    PowerShell入门简介
    资源整合,总有你想要的
    python 爬虫之 urllib库
    一天学一个Linux命令:第一天 ls
    DG磁盘分区提示错误
  • 原文地址:https://www.cnblogs.com/itdef/p/15541022.html
Copyright © 2020-2023  润新知