264. 丑数 II
题目描述:
给你一个整数 n ,请你找出并返回第 n 个 丑数 。
丑数 就是只包含质因数 2、3 和1或 5 的正整数。
考察重点:动态规划。可以写出转移方程:res[i]=min(res[p1]×2,res[p2]×3,res[p3]×5),其中res表示丑数数组;p1,p2,p3表示乘2,3,5所得的丑数索引。
func nthUglyNumber(n int) int {res := make([]int, n)p1, p2, p3 := 0, 0, 0res[0] = 1for i := 1;i < n;i ++{num1, num2, num3 := res[p1] * 2, res[p2] * 3, res[p3] * 5minN := min(num1, num2, num3)res[i] = minNif minN == num1{p1 ++}if minN == num2{p2 ++}if minN == num3{p3 ++}}return res[n - 1]
}func min(a, b, c int) int{if a < b{if a < c{return a}return c}if b < c{return b}return c
}