264. 丑数 II(Python 实现)

题目:

给你一个整数 n ,请你找出并返回第 n 个 丑数 。
丑数 就是只包含质因数 2、3 和/或 5 的正整数。

示例 1:

输入:n = 10
输出:12
解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。

示例 2:

输入:n = 1
输出:1
解释:1 通常被视为丑数。

解题思路:
采用生成的方式生成丑数。
a,b,c分别用于记录当前没乘2,3,5的数的位置,然后下一个丑数就是每一个没乘相应(2,3,5)乘以(对应的2,3,5)之后的结果中最小的那一个,并将乘的(a,b,c的位置的对应的指针向后移动1)

代码:

class Solution:
    def nthUglyNumber(self, n: int) -> int:
        res=[1]
        a,b,c=0,0,0
        for x in range(1,n):
            k=min(res[a]*2,res[b]*3,res[c]*5)
            res.append(k)
            if res[x]==res[a]*2:
                a+=1
            if res[x]==res[b]*3:
                b+=1
            if res[x]==res[c]*5:
                c+=1
        return res[n-1]

你可能感兴趣的:(力扣)