剑指offer 49. 丑数
我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。
示例:
输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
解题思路
首先,根据丑数的递推的性质可以得到:丑数只包含2,3,5三个因子,于是可以得出“丑数 = 较小的丑数 × 三个因子的一个(例如:10 = 5 × 2 )”
所以可以沿用这种思路结题,也就是说如果有一长度为n的丑数序列,求第n+1个丑数的话,只能是有三种情况:
xn+1 = xa * 2;= xb * 3;= xc * 5;
所以可以得出大概就是:dp[i] = 上面三个公式中最小的一个。