题目描述
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
leetcode原题,
题解链接
class Solution
{
public:
int GetUglyNumber_Solution(
int index)
{
if (index <
7)
return index;
vector<
int>
res(index);
res[0] =
1;
int in2 =
0, in5 =
0, in3 =
0;
for (
int i =
1; i < index; i++
)
{
res[i] = min(res[in2] *
2, min(res[in3] *
3, res[in5] *
5));
if (res[i] == res[in2] *
2)
in2++
;
if (res[i] == res[in3] *
3)
in3++
;
if (res[i] == res[in5] *
5)
in5++
;
}
return res[index -
1];
}
};
转载于:https://www.cnblogs.com/ruoh3kou/p/10125337.html