首页 > 其他分享 >leedcode-3 的幂

leedcode-3 的幂

时间:2024-04-02 13:34:34浏览次数:13  
标签:False int self leedcode 如果 return

自己写的,耗时很长

class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        # 如果n为负数,则不是3的幂
        if n < 0:
            return False
        
        # 如果n为1,则是3的幂
        if n == 1:
            return True
        
        # 如果n为0,则不是3的幂
        if n == 0:
            return False

        # 当n大于1时,不断除以3直到n为1,如果最终n等于1,则是3的幂,否则不是
        while n > 1:
            n = n / 3
            print(n)  # 打印每一步的结果,方便调试
            if n == 1:
                return True
        
        return False  # 如果循环结束仍然没有找到n等于1的情况,则不是3的幂

 gpt优化:

class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        # 如果n为0或负数,直接返回False
        while n and n % 3 == 0:
            # 如果n不是0且能被3整除,则将n除以3
            n = n // 3
        
        # 循环结束后,如果n等于1,说明原始输入n是3的幂,否则不是
        return n == 1

 

标签:False,int,self,leedcode,如果,return
From: https://www.cnblogs.com/yyyjw/p/18110373

相关文章

  • leedcode-区域和检索 - 数组不可变
    自己写的,耗时很长classNumArray:def__init__(self,nums:List[int]):#初始化NumArray类,接收一个整数列表nums作为参数self.nums=nums#将传入的nums列表存储为对象的属性defsumRange(self,left:int,right:int)->int:"""......
  • leedcode-单词规律
    自己写的,好像有点复杂:classSolution:defwordPattern(self,pattern:str,s:str)->bool:#将字符串s按空格切分成单词列表mystr=s.split()#创建一个空字典,用于存储字符和其出现位置的映射mydic=dict()......
  • leedcode-第一个错误的版本
    自己写的二分法:classSolution:deffirstBadVersion(self,n:int)->int:#初始化左右指针进行二分查找left=1right=n#检查第一个版本是否是坏版本ifisBadVersion(1):return1#检查......
  • leedcode-丢失的数字
    自己写的,调包排序:fromtypingimportListclassSolution:defmissingNumber(self,nums:List[int])->int:#将输入的列表排序nums_new=sorted(nums)#如果排序后的列表的第一个元素不是0,说明0缺失,直接返回0ifnums_n......
  • leedcode-丑数
    丑数就是只包含质因数2、3和5的正整数。换句话说丑数=2*……*2*3*……*3*5*……*5classSolution:defisUgly(self,n:int)->bool:#如果n小于等于0,则不是丑数,返回Falseifn<=0:returnFalse#如果n是......
  • leedcode-二叉树的所有路径
    迭代法-深度优先搜索classSolution:defbinaryTreePaths(self,root:Optional[TreeNode])->List[str]:ifnotroot:return[]#如果根节点为空,直接返回空列表stack=[(root,str(root.val))]#初始化栈,栈中存储的是节点......
  • leedcode-有效的字母异位词
    自己写的,有字典很简单:classSolution:defisAnagram(self,s:str,t:str)->bool:#创建两个空字典来存储字符计数s_dic=dict()t_dic=dict()#遍历字符串s,计算每个字符出现的次数并存储在s_dic中foriins:......
  • leedcode- 回文链表
    毫无创意的一版:#定义一个类SolutionclassSolution:#定义一个方法isPalindrome,用于检查链表是否为回文defisPalindrome(self,head:Optional[ListNode])->bool:#如果链表为空,则它是一个回文ifnothead:returnTrue......
  • leedcode-汇总区间
    自己写的:classSolution:defsummaryRanges(self,nums):my_li=[]#创建一个空列表用于存储结果ifnotnums:#如果输入列表为空returnmy_li#返回空列表iflen(nums)==1:#如果输入列表只有一个元素my......
  • leedcode-翻转二叉树
    自己写的:classSolution:definvertTree(self,root:Optional[TreeNode])->Optional[TreeNode]:#创建一个新的TreeNode以存储反转后的树newroot=TreeNode()#如果输入的根节点为空,则返回空ifnotroot:......