美文网首页
leetcode 2

leetcode 2

作者: lucasgao | 来源:发表于2021-04-11 23:56 被阅读0次

题目

给你一个整数 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 通常被视为丑数。

代码

func nthUglyNumber(n int) int {
    dp := make([]int,n)
    dp[0]=1
    p2,p3,p5:=0,0,0
    var p *int
    for i:=1;i<n;i++{
        v := dp[p2]*2
        p = &p2
        if v > dp[p3]*3{
            v=dp[p3]*3
            p = &p3
        }
        if v > dp[p5]*5{
            v = dp[p5]*5
            p = &p5
        }
       
        *p++
        if v > dp[i-1]{
            dp[i]=v
        }else{
            i--
        }
    }
   
    return dp[n-1]
}

相关文章

网友评论

      本文标题:leetcode 2

      本文链接:https://www.haomeiwen.com/subject/zkhtlltx.html