Skip to content

Commit 56d6d32

Browse files
authored
Merge pull request kothariji#598 from Hilbertmf/master
create (LEETCODE)ugly-number-ii.cpp
2 parents 3913074 + 1c2508d commit 56d6d32

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#define INFINITE 0x3f3f3f3f
2+
class Solution {
3+
public:
4+
5+
int nthUglyNumber(int n) {
6+
int ugly_nums[10010];
7+
int power_2 = 1, power_3 = 1, power_5 = 1,
8+
next_mul_2, next_mul_3, next_mul_5;
9+
10+
for(int i=2;i <= n;i++)
11+
ugly_nums[i] = INFINITE;
12+
ugly_nums[1] = 1;
13+
14+
for(int i=2;i<=n;i++)
15+
{
16+
next_mul_2 = ugly_nums[power_2]*2;
17+
next_mul_3 = ugly_nums[power_3]*3;
18+
next_mul_5 = ugly_nums[power_5]*5;
19+
20+
ugly_nums[i] = min({next_mul_2, next_mul_3, next_mul_5});
21+
22+
// increment the power of chosen prime
23+
if(ugly_nums[i] == next_mul_2)
24+
power_2++;
25+
if(ugly_nums[i] == next_mul_3)
26+
power_3++;
27+
if(ugly_nums[i] == next_mul_5)
28+
power_5++;
29+
}
30+
return ugly_nums[n];
31+
}
32+
};

0 commit comments

Comments
 (0)