当前位置: 首页 > article >正文

题海拾贝:力扣 231. 2 的幂

        Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!

a4d168d4159947c3890aba5ff32c8d10.gif

我的博客:<但凡.

我的专栏:《编程之路》、《题海拾贝》、《数据结构与算法之美》

欢迎点赞,关注!

 

目录

 

1、题目

2、题解

2.1第一种方法(更好)

2.2第二种方法


 

1、题目

      279d788e59b948549a38ec93c83b8942.png

2、题解

2.1第一种方法(更好)

bool isPowerOfTwo(int n) {
    return ((n & (n - 1)) == 0);
}

        这里我们只写函数部分(力扣的题都是这样的),n&(n-1)这个操作可以去除二进制位的最右边的1,如果说去除最右边的1后等于0,则说明n的二进制表示中只含有一个1,那么他就是2的幂。另外,bool类型只有两个返回值,一个是真 true,另一个是假 false。

2.2第二种方法

bool isPowerOfTwo(int n) {
    int k=0;
   while(n)
   {
    n=(n>>1)&1;
    k++;
   }
   if(k==1)
   {
    return true;
   }
   return false;
}

        这种方法是利用去一操作,将将二进制串中的每一位都判断一下是不是一,不是一就去掉,检测去一的次数是不是1,从而判断他是不是2的幂。

        但是这种方法很明显有一个弊端,就是套用了循环。他的耗时必然是比第一种方法多的。

        好了,今天的内容就分享到这,我们下期再见!

 


http://www.kler.cn/a/429283.html

相关文章:

  • @Scope(“prototype“)
  • vue自适应高度(缩放浏览器)
  • linux手动安装mysql5.7
  • STM32网络通讯之CubeMX实现LWIP项目设计(十五)
  • FLASK创建下载
  • macos arm 本地/docker/本地k8s 安装jupyterhub 并登陆
  • 使用Python和OpenGL实现3D立方体的交互式显示
  • 康托展开和逆康托展开
  • java-数组—acwing
  • 【C语言】数据库事物的ACID属性
  • 在Ubuntu上使用IntelliJ IDEA:开启你的Java开发之旅!
  • osi七层模型
  • 电子商务人工智能指南 6/6 - 人工智能生成的产品图像
  • Linux DNS之进阶篇bind-chroot企业级部署方式
  • Electron小案例
  • 超详细搭建PhpStorm+PhpStudy开发环境
  • git提交时出现merge branch main of xxx
  • Win11 配置 TeXstudio 编辑器教程
  • C# Winform飞机大战小游戏源码
  • docker的网络类型和使用方式
  • 【计算机图形学】实验2:橡皮筋技术及拾取操作
  • 运维排错系列:Excel上传失败,在剪切板有大量信息。是否保存其内容...
  • 基于yolov10的反光衣和安全帽检测系统,支持图像检测,视频检测和实时摄像检测功能(pytorch框架,python源码)
  • ensp实验-vrrp多网关配置
  • 【Android】结构型设计模式—代理模式、装饰模式、外观模式、享元模式
  • golang实现单例日志对象