
注意:
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

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

被折叠的 条评论
为什么被折叠?



