面试中算法(2的整数次幂)

判断一个正整数是否是2的整数次幂(如16是2的4次方,返回true;18不是2的整数次幂,则返回false),要求性能尽可能高。

使用一个整型变量,让它从1开始不断乘以2,将每一次乘2的结果和 目标整数进行比较。

def power2(a):temp=1#循环while temp<=a:#如果相等,就是2的整数次幂if a==temp:return True#每次乘以2# temp*=2#可以修改成,向左移1位temp=temp<<1return Falseif __name__ == '__main__':print(power2(16))print(power2(19))

这样确实有一定优化。但目前算法的时间复杂度仍然是O (logn),本质上没有变。 

如果把2的整数次幂转换成二进制数,会有什么样的共同点?

上面都是一个整数是2的整数次幂,当它转化成二进制数时,只有最高位是1,其他位都是0

  减1 

 

发现: 2的整数次幂一旦减1,它的二进制数的数字就全部变成了1!

 

发现:  0和1按位与运算的结果是0,所以凡是2的整数次幂和它本身减1的结果进行与运 算,结果都必定是0。反之,如果一个整数不是2的整数次幂,结果一定不是0 

对于一个整数n,只需要计算n& (n-1)的结果是不是0。这个方法的时间复杂度只有O (1)。

def power2_proirity(a):return a &(a-1)==0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3019087.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

印尼本土电商平台Tokopedia和Akulaku如何高效上货?你需要EasyBoss ERP产品批量编辑功能

作为印尼本土电商平台&#xff0c;Tokopedia及Akulaku在印尼拥有相当大的用户群体&#xff0c;根据Similarweb数据显示&#xff0c;这两个电商平台分别占据谷歌及苹果应用下载榜的第三四名。对于有意布局印尼本土电商市场的中国卖家&#xff0c;Tokopedia或Akulaku都不失为一个…

50kw 直流充电桩测试仪的基础知识

直流充电桩测试仪是专门用于检测和测试直流充电桩性能的设备。它能够对充电桩的输出电压、电流、功率、效率等关键参数进行精确测量&#xff0c;以确保充电桩的正常运行和充电安全。 一、工作原理 直流充电桩测试仪主要通过模拟实际充电过程&#xff0c;对充电桩的各项性能进行…

共享WiFi项目加盟骗局:共享WiFi贴码收益真的月入过万?

如今每个人的手机都是智能手机&#xff0c;我们几乎随时随地都需要网络的陪伴。而随着共享经济的概念深入人心&#xff0c;一种名为“共享WiFi贴码”的新兴事物逐渐走入了我们的视线。据说通过这种方式&#xff0c;人们可以实现轻资产创业&#xff0c;甚至有人声称能借此达到月…

GreatSQL的sp中添加新的sp_instr引入的bug解析

GreatSQL的sp中添加新的sp_instr引入的bug解析 一、问题发现 在一次开发中用到的sp需要添加新的sp_instr以满足需求&#xff0c;但是添加了数个sp_instr以后发现执行新的sp会发生core。 注&#xff1a;本次使用的GreatSQL 8.0.32-25 1、sp_head.cc的init_sp_psi_keys()代码里…

阴影渲染在AI去衣技术中的关键作用

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;深度学习在图像处理领域取得了突破性的进展。其中&#xff0c;AI去衣技术作为一种高度复杂的图像到图像的转换过程&#xff0c;不仅要求算法能够精确地识别并处理衣物纹理和结构&#xff0c;还要求生成的结果具有高度的…

Java 【数据结构】 TreeSetTreeMap(二叉搜索树详解)【神装】

登神长阶 第八神装 TreeSet 第九神装 TreeMap 目录 &#x1f489; 一.二叉搜索树 &#x1fa78;1. 定义 &#x1f48a;2. 基本操作 &#x1fa79;3. 插入操作 &#x1fa7c;4. 查找操作 &#x1fa7a;5. 删除操作* &#x1fa7b;6. 遍历操作 &#x1fa92;7.性能分析 …

3D应用开发工具HOOPS与云计算:推动工程设计行业的数字化转型

关于云计算 在信息技术迅猛发展的今天&#xff0c;云计算已经成为企业进行数字化转型的重要推手。云计算通过互联网提供包括服务器、存储、数据库、网络、软件、分析和智能等在内的计算服务&#xff0c;这些服务通常以按需供应的方式提供&#xff0c;允许用户根据使用量进行付…

ansible——INVENTORY主机清单

一、Inventory主机清单 Inventory支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或多个主机组内 二、Inventory主机清单部署 2.1 前期准备 systemctl stop firewalld setenforce 0 yum install epel-release -y yum install…

vue+ant-design+formBuiler表单构建器——技能提升——form design——亲测有效

最近看到后端同事在弄一个后台管理系统&#xff0c;额&#xff0c;前端真的是夹缝中生存啊&#xff0c;AI抢饭碗&#xff0c;后端也想干前端的活儿。。。 他用到了表单构建器&#xff0c;具体效果如下: 网上有很多适用于ElementUi和ant-design的form design插件&#xff0c;下…

ISIS学习第一部分——isis基本概念

目录 一.ISIS与OSI模型 1.IS-IS&#xff0c;中间系统到中间系统 2.ES-IS,终端系统到中间系统 二.NET——ISIS中的“IP地址” &#xff08;1&#xff09;NET有3个部分: 1.Area ID 2.System ID 3.SEL &#xff08;2&#xff09;.前面是可变长的&#xff0c;如何进行区分…

##08 数据加载与预处理:PyTorch的心脏

文章目录 前言深入理解torch.utils.data数据集(Dataset)数据加载器(DataLoader) 实战演练&#xff1a;创建自定义数据集数据转换(Transform)数据加载总结 前言 在深度学习的宇宙中&#xff0c;数据是燃料&#xff0c;模型是发动机。而在PyTorch的世界中&#xff0c;torch.util…

【前端】前端数据本地化的多种实现方式及其优劣对比

前端数据本地化的多种实现方式及其优劣对比 在现代Web开发中&#xff0c;提高页面响应速度和改善用户体验是核心目标之一。数据本地化是其中一种实现方式&#xff0c;它通过在客户端存储数据来减少服务器请求&#xff0c;从而加快数据载入速度和改善用户的体验。本文将介绍前端…

Watchdog,一双专为 Python 而生的守护者之眼

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 一个简单的库&#xff0c;也许能够开启我们的智慧之门&#xff0c; 一个普通的方法&#xff0c;也许能在危急时刻挽救我们于水深火热&#xff0c; 一个新颖的思维方式&#xff0c;也许能…

【数据库原理及应用】期末复习汇总高校期末真题试卷07

试卷 一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1.数据库管理系统在外模式、模式和内模式这三级模式之间提供了两层映象&#xff0c;其中 映象保证了数据的逻辑独立性。 2. 数据模型通常由 、数据操作和完整性约束三部分组…

Hive SQL-DML-insert插入数据

Hive SQL-DML-insert插入数据 1. 插入静态数据 可以直接插入具体的值到Hive表中&#xff1a; INSERT INTO TABLE tablename (column1, column2, column3) VALUES (value1, value2, value3),(value4, value5, value6),...;2. 插入查询结果 将一条查询的结果直接插入到另一个表中…

红帽发布Red Hat Enterprise Linux AI(RHEL AI)

红帽 2024 峰会正在科罗拉多州丹佛市举行…鉴于当前的时代背景&#xff0c;人工智能&#xff08;AI&#xff09;在此次峰会上占据了重要位置&#xff0c;因此红帽公司&#xff08;Red Hat&#xff09;也不甘人后宣布推出 RHEL AI。 红帽公司今天发布了 Red Hat Enterprise Lin…

汽车电子零部件(12):BEV, PHEV, HEV, FCEV

在考虑向电动汽车(纯电动汽车、HEV、FCEV、PHEV)过渡时,会听到很多缩写词。这可能有点让人不知所措,那就来谈谈它们的含义。 电动汽车EV (Electric Vehicles) 最广泛的类别是简单的电动汽车,即电动汽车。这些被定义为仅依靠电力进行推进的设计。这一群体包括流行的电动汽…

RTT事件集

事件集 事件集是线程间同步的机制之一&#xff0c;一个事件集可以包含多个事件&#xff0c;利用事件集可以完成一对多&#xff0c;多对多的线程间同步。 下面以坐公交为例说明事件&#xff0c;在公交站等公交时可能有以下几种情况&#xff1a; ①P1 坐公交去某地&#xff0c…

基于SpringBoot的高校推荐系统

项目介绍 当前&#xff0c;随着高等教育的不断普及&#xff0c;越来越多的学生选择考研究生来提高自身的学术水平和竞争力。然而&#xff0c;考研生在选择报考院校和专业时面临着众多的选择和信息不对称的问题。为了解决这些问题&#xff0c;一些网站和APP已经推出了相关的院校…

OpenAI泄密者加入马斯克xAI,技术版图扩张;OpenAI推出可识别DALL·E 3图像的AI检测工具

&#x1f989; AI新闻 &#x1f680; OpenAI泄密者加入马斯克xAI&#xff0c;技术版图扩张 摘要&#xff1a;最近&#xff0c;曾在OpenAI任职并被指控泄露机密的Pavel Izmailov迅速加入了马斯克旗下的xAI团队&#xff0c;成为研究员。在加入之前&#xff0c;Izmailov因涉嫌泄…