题解 | #丑数#

丑数

https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param index int整型
 * @return int整型
 */
func GetUglyNumber_Solution( index int ) int {
    // write code here
    // 丑数公式: (2^x)*(3^y)*(5^z) 
    if index < 7 {
        return index
    }

    var arr []int
    arr = append(arr, 1)
    p2, p3, p5 := 0, 0, 0
    for i:=2; i<= index; i++ {
        newNum := min(arr[p2]*2, arr[p3]*3, arr[p5]*5)
        arr = append(arr, newNum)

        if newNum == arr[p2]*2 {p2 += 1}
        if newNum == arr[p3]*3 {p3 += 1}
        if newNum == arr[p5]*5 {p5 += 1}
    }
    return arr[len(arr)-1]
}

func min(x, y, z int) int {
     min := x
    if y < min {
        min = y
    }
    if z < min {
        min = z
    }
    return min
}

全部评论

相关推荐

03-31 16:42
已编辑
郑州西亚斯学院 后端
Java抽象带篮子:你简历少了几个模块看上去就感觉信息很少,简历怎么写可以看看我发的帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务