LeetCode_231. 2 的幂_java

1、题目

231. 2 的幂icon-default.png?t=O83Ahttps://leetcode.cn/problems/power-of-two/

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

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

示例 1:

输入:n = 1
输出:true
解释:2^{0} = 1

示例 2:

输入:n = 16
输出:true
解释:2^{4} = 16

示例 3:

输入:n = 3
输出:false

提示:

    -2^{31} <= n <= 2^{31}-1

进阶:你能够不使用循环/递归解决此问题吗?

2、题解

题解1:使用循环

2的幂次方,肯定是大于等于1的,因为2^{0} = 1,所以当n<1的时候,就可以直接返回false了。

对n循环除以2,看最后的余数是否是1,如果不是1,那肯定不是2的幂次方。

class Solution {public boolean isPowerOfTwo(int n) {if (n < 1) {return false;}while (n % 2 == 0) {n /= 2;}return n == 1;}
}

题解2:使用位运算(进阶版)

2的幂次方,肯定是大于等于1的,因为2^{0} = 1,所以n>0 必须成立。

由于2的幂次方的二进制,除了第一个数位是1,其余都是0,而2的幂次方-1的二进制,所有数位都是1,例如

2^{1} = 2  -> 10      ,2^{1}-1 = 1  -> 1

2^{2} = 4  ->  100   ,2^{2}-1 = 3  -> 11

2^{3} = 8  ->  1000 ,2^{3}-1 = 7  -> 111

......

所以2^{x}2^{x}-1的二进制相与之后,是0,例如:

2^{2} & (2^{2}-1) =100 & 11 =0

因此,如果n是2的幂次方,那 n & (n-1) == 0 也必须成立。

class Solution {public boolean isPowerOfTwo(int n) {return n > 0 && (n & (n - 1)) == 0;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.1 特征值介绍

一、特征值和特征向量介绍 本章会开启线性代数的新内容。前面的第一部分是关于 A x b A\boldsymbol x\boldsymbol b Axb&#xff1a;平衡、均衡和稳定状态&#xff1b;现在的第二部分是关于变化的。时间会加入进来 —— 连续时间的微分方程 d u / d t A u \pmb{\textrm{d}…

Spring微服务学习笔记之Spring Cloud Alibaba远程服务调用实战

Spring微服务概述 微服务是一种架构风格&#xff0c;它将单个应用程序拆分为一组小型、独立的服务&#xff0c;每个服务实现特定的业务功能&#xff0c;并且可以独立部署和扩展。Spring 微服务即基于Spring Cloud框架构建的微服务应用。Spring Cloud提供了一系列工具和服务来简…

CTF--Misc题型小结

&#xff08;萌新笔记&#xff0c;多多关照&#xff0c;不足之处请及时提出。&#xff09; 不定时更新~ 目录 密码学相关 文件类型判断 file命令 文件头类型 strings读取 隐写术 尺寸修改 文件头等缺失 EXIF隐写 thumbnail 隐写 文件分离&提取 binwalk foremo…

Java安全——AES(对称加密)和 RSA(非对称加密)的实现

目录 一、对称加密和非对称加密 1.对称加密 常见算法 2.非对称加密 常见算法 3.对称加密和非对称加密的对比 二、AES&#xff08;对称加密&#xff09; 1.生成AES密钥 2.加密数据 3.解密数据 完整代码 三、RSA&#xff08;非对称加密&#xff09; 1.生成RSA密钥对…

索引的使用和优化

索引就是一种快速查询和检索数据的数据结构&#xff0c;mysql中的索引结构有&#xff1a;B树和Hash。 索引的作用就相当于目录的作用&#xff0c;我么只需先去目录里面查找字的位置&#xff0c;然后回家诶翻到那一页就行了&#xff0c;这样查找非常快&#xff0c; 创建一个表结…

日常实习与暑期实习详解

日常实习与暑期实习详解 问了下正在实习的同学&#xff0c;发现天要塌了–才知道日常实习是没有笔试的 1. 实习的定义 1.1 日常实习 日常实习是企业长期招聘的实习岗位&#xff0c;通常没有时间限制。企业会在需要时进行招聘&#xff0c;招聘对象包括在校大学生和大一、大二的…

苍穹外卖 新增套餐接口

新增套餐主要的坑&#xff1a;新增时操作数据库&#xff0c;不能使用简单的Insert注解&#xff0c;因为要使用到数据库自增的id值&#xff0c;所以说必须使用XML配置数据库&#xff1b;必须要注意建立好套餐和对应菜品之间的关联。 SetmealController package com.sky.control…

短视频矩阵系统源码开发优势,短视频矩阵系统oem部署

短视频矩阵系统就是在多个短视频平台上构建自己的内容生态&#xff0c;通过多平台、多账号、多内容的运营策略&#xff0c;实现品牌曝光、用户引流、产品销售等目的。短视频矩阵的核心在于通过矩阵式的布局&#xff0c;实现资源优化配置和利用&#xff0c;提升企业市场竞争力。…

2024年【安全员-A证】最新解析及安全员-A证作业考试题库

安全生产是企业发展的基石&#xff0c;关系到每一位员工的生命安全和企业的长远发展。为了提升安全管理人员的专业素养和应对突发事件的能力&#xff0c;2024年【安全生产模拟考试一点通】发布了最新的【安全员-A证】考试解析及题库&#xff0c;旨在帮助考生顺利通过考试&#…

.Net 8 Web API CRUD 操作

本次介绍分为3篇文章&#xff1a; 1&#xff1a;.Net 8 Web API CRUD 操作https://blog.csdn.net/hefeng_aspnet/article/details/143228383 2&#xff1a;在 .Net 8 API 中实现 Entity Framework 的 Code First 方法https://blog.csdn.net/hefeng_aspnet/article/details/1…

【C++干货篇】——类和对象的魅力(四)

【C干货篇】——类和对象的魅力&#xff08;四&#xff09; 1.取地址运算符的重载 1.1const 成员函数 将const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后面。const实际修饰该成员函数隐含的this指针&#xff08;this指向的对…

Facebook登录客户追踪:了解用户访问路径,优化客户体验

随着数字化转型的不断加速&#xff0c;精准的客户数据收集和用户行为追踪成为企业提升用户体验和优化业务流程的关键。Facebook登录作为一种便捷的第三方登录方式&#xff0c;已经被广泛应用于各类网站和应用中。它不仅简化了用户的注册与登录流程&#xff0c;还帮助企业获得用…

nuxt3项目创建

安装 npx nuxilatest init <project-name> 此时会出现报错&#xff0c;需要在host文件中加入 185.199.108.133 raw.githubusercontent.com 再次执行命令&#xff0c;进入安装 此处选择npm&#xff0c;出现下图表示安装成功 启动项目 执行npm run dev&#xff0c;访…

【力扣 + 牛客 | SQL题 | 每日4题】牛客大厂笔试真题SQLW6, W7, W8

1. 牛客大厂笔试真题SQLW6&#xff1a;统计所有课程参加培训人次 1.1 题目&#xff1a; 描述 某公司员工培训信息数据如下&#xff1a; 员工培训信息表cultivate_tb(info_id-信息id,staff_id-员工id,course-培训课程)&#xff0c;如下所示&#xff1a; 注&#xff1a;该公…

【大数据技术基础 | 实验五】ZooKeeper实验:部署ZooKeeper

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验步骤&#xff08;一&#xff09;安装JDK&#xff08;二&#xff09;修改ZooKeeper配置文件&#xff08;三&#xff09;启动ZooKeeper集群 六、实验结果七、实验心得 一、实验目的 掌握ZooKeeper集群安装部署…

基于Netty构建WebSocket服务并实现项目群组聊天和实时消息通知推送

文章目录 前言需求分析技术预研Web端方案服务端技术 技术方案设计思路功能实现添加依赖自定义NettyServer自定义webSocketHandler使用NettyServer向在线用户发送消息 需要完善的地方 前言 我们的项目有个基于项目的在线文档编制模块&#xff0c;可以邀请多人项目组成员在线协同…

python爬虫-爬取蛋白晶体和分子结构

文章目录 前言一、环境准备二、爬取PDB蛋白结构1.下载指定数量的随机PDB2.下载指定靶标的PDB二、从ZINC爬取小分子mol2结构1.下载指定数量的随机分子2.下载指定分子三、从ChEMBL爬取小分子信息1.下载指定ID的SMILES(测试不成功,网站变成readonly了)四、总结爬虫1.查看对应的…

AMD锐龙8845HS+780M核显 虚拟机安装macOS 15 Sequoia 15.0.1 (2024.10)

最近买了机械革命无界14X&#xff0c;CPU是8845HS&#xff0c;核显是780M&#xff0c;正好macOS 15也出了正式版&#xff0c;试试兼容性&#xff0c;安装过程和之前差不多&#xff0c;这次我从外网获得了8核和16核openCore&#xff0c;分享一下。 提前发一下ISO镜像地址和open…

Flink Rest API

REST API | Apache Flink Flink官网API 通过curl 或者Rest API工具测试web UI对应的接口返回信息 Flink 提交yarn任务 ./bin/flink run -t yarn-per-job historyServer ../bin/historyserver.sh start

JavaScript完整笔记

JS引入 JavaScript 程序不能独立运行&#xff0c;它需要被嵌入 HTML 中&#xff0c;然后浏览器才能执行 JavaScript 代码。 通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;有两种方式&#xff1a; 内部方式 通过 script 标签包裹 JavaScript 代码 我们将 &…