264、丑数2
给你一个整数 n
,请你找出并返回第 n
个 丑数 。
丑数 就是只包含质因数 2
、3
和/或 5
的正整数。
输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。
思路:
动态规划,Leetcode力扣264 手画图解版|丑数II Ugly Number II_哔哩哔哩_bilibili 别人的视频讲解。
func nthUglyNumber(n int) int {
dp := make([]int, n+1)
dp[1] = 1
p2,p3,p5 := 1,1,1
for i:=2;i<=n;i++{
t2,t3,t5 := dp[p2]*2,dp[p3]*3,dp[p5]*5
dp[i] = min(min(t2,t3),t5)
if dp[i] == t2 {
p2++
}
if dp[i] == t3 {
p3++
}
if dp[i] == t5 {
p5++
}
}
return dp[n]
}
func min(a, b int) int {
if a > b {
return b
}
return a
}
总结:
有点不懂,dp还不会呢...先记录吧后续更新修改