给定一个整数,编写一个函数来判断它是否是 2 的幂次方(位运算求解)

    科技2025-08-16  16

    话不多说,看题,记录3种解法

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

    示例 1:

    输入: 1 输出: true 解释: 20 = 1

    示例 2:

    输入: 16 输出: true 解释: 24 = 16

    示例 3:

    输入: 218 输出: false

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-two 常规解法

    class Solution: def isPowerOfTwo(self, n: int) -> bool: i=0; while 2**i!=n: i+=1; if 2**i>n: return False; return True;

    递归

    bool isPowerOfTwo(int n){ if(n==1) return true; if(n==0) return false; if(n%2!=0) return false; return isPowerOfTwo(n/2); }

    位运算-极简解法,时间复杂度和空间复杂度O(1)

    class Solution: def isPowerOfTwo(self, n: int) -> bool: return n > 0 and n & (n - 1) == 0

     

     

     考研对信息的获取至关重要,此公众号会发表计算机考研(初复试信息)、夏令营等资料,方便考研人对信息的获取,节约自身查找资料的时间

    Processed: 0.011, SQL: 8