leetcode刷题231 2的幂 Power of Two(简单) Python Java

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01 当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。 阅读详情

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1
输出: true
解释: 2的0次方 = 1

示例 2:

输入: 16
输出: true
解释: 2的4次方 = 16

示例 3:

输入: 218
输出: false

思路1:如果每次将这个数除以2没有余数,直到得到数字1,那么这个数就是2的若干次幂。

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n < 1:
            return False
        while n%2 == 0:
            n /= 2
        return True if n==1 else False

思路2:2的幂次 x 表示成二进制一定是一个1后面若干个0,那么 如果将这个数减去1x-1, 一定是一个0后面若干个1,所以对这两个数按位相与,必为0,即 x & (x-1) = 0 ,非2的幂无法得到0。

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        return n > 0 and not (n & n-1)

 

以下是Java版本:

题目大意:

给定一个整数,编写函数判断它是否是2的幂。

解题思路:

如果一个整数是2的幂,那么它的二进制形式最高位为1,其余各位为0

等价于:n & (n - 1) = 0,且n > 0

比较简单,就是移位判断一下二进制数一共有多少个1,如果只有一个,那就是2的幂次方啦

1.	public class Solution {  
2.	    public boolean isPowerOfTwo(int n) {  
3.	        int sum = 0;  
4.	        if(n <= 0){  
5.	            return false;  
6.	        }  
7.	        for(int i = 0;i < 32;i++){  
8.	            sum += (n>>>i)&1;  
9.	        }  
10.	        return (sum == 1? true:false);  
11.	    }  
12.	}  

利用2的幂 其二进制上的特点,来进行判断; 2^n在二进制上都是1000...0(n个零的特点);  减去1,二进制上就会变成1111....111(n个零)

//例如,8的二进制是1000,7的二进制是0111,相与为0

1.	public class Solution {  
2.	    public boolean isPowerOfTwo(int n) {  
3.	       return n > 0 && (n & (n - 1)) == 0;  
4.	    }  
5.	} 

 

CircuitBreaker Resilience4J 介绍 在分布式环境中,我们的应用可能会面临着各种各样的可恢复的异常(比如超时,网络环境异常),此时我们可以利用不断重试的方式来从异常中恢复(Retry Pattern),使整个集群正常运行。然而,也有一些异常比较顽固,突然发生,无法预测,而且很难恢复,并且还会导致级联失败(举个例子,假设一个服务集群的负载非常高,如果这时候集群的一部分挂掉了,还占了很大一部分资源,整个集群都有可能遭殃)。如果我们这时还是不断进行重试的话,结果大多都是失败的。 阅读详情

相关推荐

基于bootstrap+Java的图书管理系统(任务书)

10] 倪甜弟,周晓波,王相喜.基于JSP图书馆自习室预约系统的设计与实现[J].现代计算机, 2024, 30(9):117-120.DOI:10.3969/j.issn.1007-1423.2024.09.023.[2] 陈明雪,赵勇,周小丽,等.基于Node.js和Bootstrap的图书管理系统设计与研究[J].现代信息科技, 2021, 5(24):4.[9] 杨婷婷.基于VOSviewer的图书馆管理系统研究的可视化分析[J].现代信息科技, 2023, 7(3):123-126.

毕业作品网站 647

LeetCode 231 2的幂 Java实现

LeetCode231 题目 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 代码 久违的一遍过, 好耶! (其实是题目太简单了… 但其实这种方法并不是很快 其实如果学过计组的话用补码的知识会更快一些 如果不用的话其实我感觉我这种是最好理解的, 因为传进来的就是一个n 直接从2的1次方到31次方遍历判断过去感觉就好唉

BedivereAlter的博客 274

CMMI AIM 人工智能成熟度框架:31个过程域的157项AI实践集成

CMMI AIM人工智能成熟度框架为企业提供了系统化管理AI项目全生命周期的解决方案,包含31个过程域的157项AI实践。该框架通过四个演进阶段(混沌与风险、结构与凝聚、验证与信任、价值与增长),帮助组织建立可持续的AI能力成长路径,降低项目失败率并提升商业价值。

weixin_42613501的博客 353

leetcode231二的幂java题解(数学)

1.题目 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1输出: true解释: 2的0次方 = 1 示例 2: 输入: 16输出: true解释: 2的4次方 = 16 示例 3: 输入: 218输出: false 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-two 2.想法 第一种:利...

老简单题 271

搭建微信机器人的方案都在这了!

功能超级强大,虽不支持二次开发,但已有的功能足够个人使用,可惜官方作品已被腾讯告死,好在市面上还流落着不少破解版,有需要的自行搜索。可惜的是,微信官方已不准许新的微信号再使用 web 登录,这就直接从源头扼杀了 web 协议的微信机器人,虽说老的微信号还是能凑合着用,不过部分功能也受限。所以,这些都属于 PC 端的微信机器人。无论是 PC 端还是手机端,用 hook 方式实现的最大缺点就是要和某一个版本的微信客户端进行绑定,如果框架本身不对最新版本的微信适配,那使用的时候就无法升级到最新版本的微信。

weixin_47246330的博客 1万+

OpenClaw实战系列01:OpenClaw接入飞书机器人全接入指南 + Ollama本地大模型

通过 OpenClaw + Ollama + 飞书的组合,我们成功搭建了一个完全私有、免费、可定制的AI助理。它不仅能在日常聊天中提供帮助,还能通过OpenClaw强大的“技能”体系,真正去操作你的电脑、管理文件、甚至执行代码。这套方案将数据留在本地,既保证了隐私安全,又锻炼了动手能力。现在,去给你的AI助理添加更多酷炫的技能吧!

PeterPan的博客 1万+

LeetCode 231. 2的幂(JAVA)

class Solution { public boolean isPowerOfTwo(int n) { // 判断特例 if (n == 0) return false; return n > 0 && (n & (n - 1)) == 0; } }

weixin_43170297的博客 219

uniapp ios原生插件开发 (framework,cocoapods)

已知UniApp的插件开发方式有两种, 第一种 Xcode Framework的方式,这种方式是官方指定的方式。 这种方式的优点就是简单直接, 但也有不足,比如当插件需要引入一些三方库时,操作起来就不是那么方便。 而使用Cocoapods则可以很方便的引入三方库。 接下来,本文探索使用Cocoapods的方式来进行UniApp插件开发。

Rey的技术博客 9823

[Leetcode] 231. 2的幂 java

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false class Solution { public boolean isPowerOfTwo(int n) { if(n...

niceHou666的博客 514

基于Python的链家与贝壳租房数据爬取及城市性价比分析

本文通过Python爬虫技术,实现对链家和贝壳平台全国主要城市租房数据的采集与分析。研究使用requestsSelenium和Playwright等现代化爬虫工具,结合代理IP和验证码识别技术应对反爬机制。采集的数据经过清洗后,从多维度分析不同城市租房市场的价格分布、面积特征和性价比差异,并使用可视化技术展示分析结果。本研究为租房者提供决策参考,也为租房市场研究提供数据支撑。关键词:Python爬虫;租房数据;数据分析;链家;贝壳。

2201_76125261的博客 530

华为OD新系统机试真题-勇攀数字高峰(Java/Py/C/C++/Js/Go)

新系统 华为OD机试新系统【勇登数字高峰】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【勇登数字高峰】

qq_45776114的博客 1547

leetcode 231. Power of Two 判断是否为2的幂 Java

231. Power of Two Given an integer, write a function to determine if it is a power of two. Credits: Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

记忆力不好的博客 3420

【七.三维视觉与视频分析】【1.点云处理:PointNet++/PointTransformer】

各位老铁,今天咱们要聊的可不是普通的二维图像处理,而是三维视觉领域最硬核的技术——点云处理。从最早的PointNet到如今的PointTransformer,这场技术进化堪比三维版的"像素革命"。今天咱们就深入解剖两大里程碑:PointNet++和PointTransformer,保证让你看完全文就能在点云领域横着走!想象一下,你抓了把沙子撒在空中,每粒沙子的位置都是三维坐标——这就是点云的典型形态。最后送大家一句话:点云处理就像在三维宇宙中寻找星辰的轨迹,既要望远镜的宏观视野,也要显微镜的细致入微。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 473

LeetCode 231: Power of Two

Given an integer, write a function to determine if it is a power of two. 判断一个数是否是2的幂,判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0. 方法1: n & n-1 == 0 class Solution { public: bool isPowerOfTwo(int n) {

哈哈的个人专栏 4529

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【LeetCode】231. Power of Two 解题报告(Java & Python)

Power of Two[LeetCode]https://leetcode.com/problems/power-of-two/Total Accepted: 71172 Total Submissions: 194399 Difficulty: EasyQuestion Given an integer, write a function to determine if it is a po

负雪明烛 1397

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【LeetCode题解】231_2的幂(Power-of-Two)

文章目录描述解法 1:判断整数 $x$ 的二进制表示中是否只有一位为1实现方式 1:除以 2Java 实现(非递归)Python 实现(非递归)Java 实现(递归)Python 实现(递归)复杂度分析实现方式 2:位运算Java 实现Python 实现复杂度分析 描述 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 2^0 = 1 示...

StrongXGP 的博客 378

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[LeetCode] 231. Power of Two 2的次方数

Given an integer, write a function to determine if it is a power of two. Example 1: Input: 1 Output: true Example 2: Input: 16 Output: true Example 3: Input: 218 Output: false 给一个整数,写一个函数来判断...

weixin_30906701的博客 155

10个LeetCode高频算法类型全解析:基于gh_mirrors/leetcode21/leetcode项目

如果你正在准备技术面试或想提升编程能力,掌握LeetCode高频算法类型是必不可少的。本指南基于gh_mirrors/leetcode21/leetcode项目,为你解析10个最重要的算法类型,帮助你快速提升解题能力。这个项目包含了229道LeetCode题解,涵盖C++、Java、Python、SQL和Shell Script多种语言实现,是学习算法和数据结构的最佳资源。 ## 📊 为什么算

gitblog_00434的博客 1078

leetcode 231. Power of Two 2的幂 python 多种思路,一行代码 (位运算&math)

class Solution: def isPowerOfTwo(self, n): &quot;&quot;&quot; :type n: int :rtype: bool &quot;&quot;&quot; # once method # while int(n) == n and n != 0: # if n

Jasmine_dream 607

leetcode-2的幂(java版)

文章目录题目代码 题目 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 代码 /* * @lc app=leetcode.cn id=231 lang=java * * [231] 2的幂 */ //...

lingle1的博客 381

231. Power of Two [easy] (Python)

题目链接https://leetcode.com/problems/power-of-two/题目原文 Given an integer, write a function to determine if it is a power of two. 题目翻译给定一个整数,写一个函数判断它是否是2的若干次幂。思路方法思路一比较直观暴力的想法是,如果每次将这个数除以2没有余数,直到得到数字1,那么这

Coder_Orz的博客 3688

Power of Two(算法)

Power of Two(算法) 4: 222^222 true 9: 323^232 false 16: 424^242 = 242^424 true 1.mod; 2.log2 => int; 3.位运算; x & (x - 1) 判断: x != 0 && x & (x - 1) == 0 python def isPowerOfTwo(self, n...

pureszgd的博客 1148

Java实现 LeetCode 230 2的幂

231. 2的幂 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false PS: 2的次幂和他的上一位数&的结果为0 8的二进制就是1000 7的二进制就是0111 结果========0000 class S...

南 墙 1万+

LeetCode刷题笔记(Java):231. 2的幂

题目描述: 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例1: 输入: 1 输出: true 解释: 20= 1 示例 2: 输入: 16 输出: true 解释: 24= 16 示例 3: 输入: 218 输出: false 思路1: 2的幂都能被二整除,让这个数循环被2整除,最后的结果为1。但是如果不是2的幂,第一次除2,得到的余数肯定不是0,让这个数与1...

weixin_42609199的博客 268

LeetCode 刷题记录(8,9,10)—Java语言

8. 字符串转整数 (atoi) 题目 实现 atoi,将字符串转为整数。 在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它...

Traveler 1301

Leetcode-2的幂

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例1: 输入: 1 输出: true 解释: 20= 1 示例 2: 输入: 16 输出: true 解释: 24= 16 示例 3: 输入: 218 输出: false 方法一 #include <stdio.h> #include <stdbool.h> bool isPowe...

技术进阶之路 347
上一篇: leetcode刷题217 存在重复元素 Contains Duplicate(简单) Python Java
下一篇: leetcode刷题235 二叉搜索树的最近公共祖先 Lowest Common Ancestor of a Binary Search Tree(简单) Python Java
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值