File tree Expand file tree Collapse file tree 3 files changed +61
-6
lines changed Expand file tree Collapse file tree 3 files changed +61
-6
lines changed Original file line number Diff line number Diff line change @@ -111,19 +111,18 @@ public:
111
111
* @return {number}
112
112
*/
113
113
var nthUglyNumber = function (n) {
114
- let dp = [1];
114
+ const dp = [1];
115
115
let p2 = 0,
116
116
p3 = 0,
117
117
p5 = 0;
118
118
for (let i = 1; i < n; ++i) {
119
119
const next2 = dp[p2] * 2,
120
120
next3 = dp[p3] * 3,
121
121
next5 = dp[p5] * 5;
122
- dp[i] = Math.min(next2, Math.min( next3, next5) );
122
+ dp[i] = Math.min(next2, next3, next5);
123
123
if (dp[i] == next2) ++p2;
124
124
if (dp[i] == next3) ++p3;
125
125
if (dp[i] == next5) ++p5;
126
- dp.push(dp[i]);
127
126
}
128
127
return dp[n - 1];
129
128
};
@@ -160,6 +159,37 @@ func min(a, b int) int {
160
159
}
161
160
```
162
161
162
+ ### ** Rust**
163
+
164
+ ``` rust
165
+ impl Solution {
166
+ pub fn nth_ugly_number (n : i32 ) -> i32 {
167
+ let n = n as usize ;
168
+ let mut dp = vec! [1 ; n ];
169
+ let mut p2 = 0 ;
170
+ let mut p3 = 0 ;
171
+ let mut p5 = 0 ;
172
+ for i in 1 .. n {
173
+ let n2 = dp [p2 ] * 2 ;
174
+ let n3 = dp [p3 ] * 3 ;
175
+ let n5 = dp [p5 ] * 5 ;
176
+ dp [i ] = n2 . min (n3 . min (n5 ));
177
+
178
+ if dp [i ] == n2 {
179
+ p2 += 1 ;
180
+ };
181
+ if dp [i ] == n3 {
182
+ p3 += 1 ;
183
+ };
184
+ if dp [i ] == n5 {
185
+ p5 += 1 ;
186
+ };
187
+ }
188
+ dp [n - 1 ]
189
+ }
190
+ }
191
+ ```
192
+
163
193
### ** ...**
164
194
165
195
```
Original file line number Diff line number Diff line change 3
3
* @return {number }
4
4
*/
5
5
var nthUglyNumber = function ( n ) {
6
- let dp = [ 1 ] ;
6
+ const dp = [ 1 ] ;
7
7
let p2 = 0 ,
8
8
p3 = 0 ,
9
9
p5 = 0 ;
10
10
for ( let i = 1 ; i < n ; ++ i ) {
11
11
const next2 = dp [ p2 ] * 2 ,
12
12
next3 = dp [ p3 ] * 3 ,
13
13
next5 = dp [ p5 ] * 5 ;
14
- dp [ i ] = Math . min ( next2 , Math . min ( next3 , next5 ) ) ;
14
+ dp [ i ] = Math . min ( next2 , next3 , next5 ) ;
15
15
if ( dp [ i ] == next2 ) ++ p2 ;
16
16
if ( dp [ i ] == next3 ) ++ p3 ;
17
17
if ( dp [ i ] == next5 ) ++ p5 ;
18
- dp . push ( dp [ i ] ) ;
19
18
}
20
19
return dp [ n - 1 ] ;
21
20
} ;
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn nth_ugly_number ( n : i32 ) -> i32 {
3
+ let n = n as usize ;
4
+ let mut dp = vec ! [ 1 ; n] ;
5
+ let mut p2 = 0 ;
6
+ let mut p3 = 0 ;
7
+ let mut p5 = 0 ;
8
+ for i in 1 ..n {
9
+ let n2 = dp[ p2] * 2 ;
10
+ let n3 = dp[ p3] * 3 ;
11
+ let n5 = dp[ p5] * 5 ;
12
+ dp[ i] = n2. min ( n3. min ( n5) ) ;
13
+
14
+ if dp[ i] == n2 {
15
+ p2 += 1 ;
16
+ } ;
17
+ if dp[ i] == n3 {
18
+ p3 += 1 ;
19
+ } ;
20
+ if dp[ i] == n5 {
21
+ p5 += 1 ;
22
+ } ;
23
+ }
24
+ dp[ n - 1 ]
25
+ }
26
+ }
You can’t perform that action at this time.
0 commit comments