码迷,mamicode.com
首页 > 其他好文 > 详细

剑指 Offer 49. 丑数

时间:2021-01-22 12:20:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ems   fun   超过   block   for   pen   地址   lse   UNC   

剑指 Offer 49. 丑数

地址:剑指 Offer 49. 丑数

我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。

示例:

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

1 是丑数。
n 不超过1690。


func nthUglyNumber(n int) int {
    res := make([]int, 0)
    two  := 0
    three:= 0
    five := 0
    res = append(res, 1)

    if n == 1 {return 1}
    for len(res) < n {
        ans := min(2*res[two], min(3*res[three], 5*res[five]))
        if ans == 2*res[two] {two += 1}
        if ans == 3*res[three] {three += 1}
        if ans == 5*res[five] {five += 1}
        res = append(res, ans)
    }
    return res[len(res)-1]
}

func min(a, b int) int {
    if a < b {
        return a
    } else {
        return b
    }
}

剑指 Offer 49. 丑数

标签:ems   fun   超过   block   for   pen   地址   lse   UNC   

原文地址:https://www.cnblogs.com/ganshuoos/p/14311284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!