LeetCode231_231. 2 的幂
迪丽瓦拉
2025-05-29 14:09:27
0

LeetCode231_231. 2 的幂

一、描述

给你一个整数 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

二、题解

方法一:判读一个数可不可以有 n个2 相乘得到

    //AC Your runtime beats 4.72 % of java submissions//1108 / 1108 test cases passed.	Status: Accepted	Runtime: 7 ms//其实就是判读一个数可不可以有 n个2 相乘得到  和263题思路很像public boolean isPowerOfTwo(int n) {boolean res = false;if (n <= 0) {return false;} else {while (n % 2 == 0)n /= 2;if (n == 1) {res = true;}}return res;}

方法二: 快速幂

    //方法二:快速幂/*如果n是2的幂次方, 说明n只有前面一个1,后面都是0 ,(n-1)把前面的1变成了0,后面都变层了1。例如: 1000 & 0111 =0, 其他的情况下(n &(n-1))都 不等于0*//*执行结果:通过执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户内存消耗:38.3 MB, 在所有 Java 提交中击败了97.54%的用户通过测试用例:1108 / 1108*/public boolean isPowerOfTwo2(int n) {if (n <= 0) {return false;}return (n & (n - 1)) == 0;}

LeetCode 206. 反转链表
LeetCode 207. 课程表
LeetCode 208. 实现 Trie (前缀树)
LeetCode 209. 长度最小的子数组
LeetCode 210. 课程表 II
LeetCode 217. 存在重复元素
LeetCode 229. 多数元素 II
LeetCode 231. 2 的幂
LeetCode 234. 回文链表
LeetCode 237. 删除链表中的节点
LeetCode 242. 有效的字母异位词
LeetCode 257. 二叉树的所有路径



声明:
        题目版权为原作者所有。文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

相关内容