264. 丑数 II

编写一个程序,找出第 n 个丑数。

丑数就是质因数只包含 2, 3, 5 的正整数。

示例:

输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
说明:  

1 是丑数。
n 不超过1690。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ugly-number-ii

dp+三指针

class Solution:
    def nthUglyNumber(self, n: int) -> int:
        ugly=[1]*n
        base=[0]*3
        for i in range(1,n):
            a=ugly[base[0]]*2
            b=ugly[base[1]]*3
            c=ugly[base[2]]*5
            next=min(a,b,c)
            if next==a:base[0]+=1
            if next==b:base[1]+=1
            if next==c:base[2]+=1
            ugly[i]=next
        return ugly[-1]

 

posted @ 2020-10-06 15:32  XXXSANS  阅读(177)  评论(0编辑  收藏  举报