算法第二十一天-丑数

丑数

题目要求

算法第二十一天-丑数_第1张图片

解题思路

首先判断数字是不是为0或者负数,两者均不可能成为丑数;
之后对n进行不断整除,直到无法除尽为止。
简单判断最后的数是不是1即可。

代码

class Solution:
    def isUgly(self, n: int) -> bool:
        if n<=0:
            return False
        if n <= 0:
            return False
        while n % 2 == 0:
            n //= 2
        while n % 3 == 0:
            n //= 3
        while n % 5 == 0:
            n //= 5
        return n == 1

复杂度分析

时间复杂度: O ( l o g n ) O(log n) O(logn)
空间复杂度: O ( 1 ) O(1) O(1)

你可能感兴趣的:(算法基础,算法,python,leetcode)