一、题目
把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。
例如 6、8 都是丑数,但 14 不是,因为它包含质因子 7。 习惯上我们把 1 当做是第一个丑数。
求按从小到大的顺序的第N个丑数。
题解:
已知丑数的因子只有2,3,5,即丑数 p = 2^x * 3^y * 5^z
,或者说:丑数一定是由另一个丑数乘以2或者3或者5得到。
此时可以维护三个队列:
(1)丑数数组: 1
乘以2的队列:2
乘以3的队列:3
乘以5的队列:5
选择三个队列头最小的数2加入丑数数组,同时将该最小的数乘以2,