Leetcode刷题记录——263. 丑数

本文介绍了一种用于判断一个数是否为丑数的算法。丑数定义为只能被2、3、5整除的正整数。文章详细阐述了算法的逻辑,包括递归检查数是否能被2、3、5整除,并更新已知丑数集合。

在这里插入图片描述
注意:
1、数字1是丑数
2、一个数是丑数,意味着
它可以至少被{2,3,5}中的一个整除 且 它除以这个数的结果也是丑数

class Solution:

    def __init__(self):
        self.uglyset = {1,2,3,5}#{2:1,3:1,5:1}
    def isUgly(self, num: int) -> bool:
        return self.func(num)
    def func(self,num):
        if num in self.uglyset:
            return True
        elif num <= 0:
            return False
        else:
            res2 = self.func(num/2) if num % 2 == 0 else False
            if res2 == True:
                self.uglyset.add(res2)#1
                return True
            res3 = self.func(num/3) if num % 3 == 0 else False
            if res3 == True:
                self.uglyset.add(res3)# = 1
                return True
            res5 = self.func(num/5) if num % 5 == 0 else False
            if res5 == True:
                self.uglyset.add(res5)# = 1
                return True
            return False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值