Skip to content

Commit 0d7abda

Browse files
committed
Runtime: 113 ms (Top 11.61%) | Memory: 30.00 MB (Top 16.43%)
1 parent a935f68 commit 0d7abda

File tree

1 file changed

+13
-24
lines changed

1 file changed

+13
-24
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,18 @@
1-
// Runtime: 4 ms (Top 94.55%) | Memory: 6 MB (Top 90.93%)
1+
// Runtime: 113 ms (Top 11.61%) | Memory: 30.00 MB (Top 16.43%)
2+
23
class Solution {
34
public:
45
int nthUglyNumber(int n) {
5-
6-
int dp[n+1];
7-
dp[1] = 1;
8-
9-
int p2 = 1, p3 = 1, p5 = 1;
10-
int t;
11-
12-
for(int i = 2; i < n+1; i++){
13-
t = min(dp[p2]*2, min(dp[p3]*3, dp[p5]*5));
14-
dp[i] = t;
15-
16-
if(dp[i] == dp[p2]*2){
17-
p2++;
18-
}
19-
if(dp[i] == dp[p3]*3){
20-
p3++;
21-
}
22-
if(dp[i] == dp[p5]*5){
23-
p5++;
24-
}
6+
set<long> st;
7+
st.insert(1);
8+
long num = 1;
9+
for(int i=0;i<n;i++){
10+
num = *st.begin();
11+
st.erase(num);
12+
st.insert(num * 2);
13+
st.insert(num * 3);
14+
st.insert(num * 5);
2515
}
26-
return dp[n];
27-
16+
return num;
2817
}
29-
};
18+
};

0 commit comments

Comments
 (0)