File tree 2 files changed +28
-1
lines changed
2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change 215
215
| 260 | [ Single Number III] ( https://leetcode.com/problems/single-number-iii ) | [ ![ Java] ( assets/java.png )] ( src/SingleNumberIII.java ) | |
216
216
| 261 | 🔒 [ Graph Valid Tree] ( https://leetcode.com/problems/graph-valid-tree ) | | |
217
217
| 263 | [ Ugly Number] ( https://leetcode.com/problems/ugly-number ) | [ ![ Java] ( assets/java.png )] ( src/UglyNumber.java ) [ ![ Python] ( assets/python.png )] ( python/ugly_number.py ) | |
218
- | 264 | [ Ugly Number II] ( https://leetcode.com/problems/ugly-number-ii ) | | |
218
+ | 264 | [ Ugly Number II] ( https://leetcode.com/problems/ugly-number-ii ) | [ ![ Java ] ( assets/java.png )] ( src/UglyNumberII.java ) | |
219
219
| 266 | 🔒 [ Palindrome Permutation] ( https://leetcode.com/problems/palindrome-permutation ) | | |
220
220
| 267 | 🔒 [ Palindrome Permutation II] ( https://leetcode.com/problems/palindrome-permutation-ii ) | | |
221
221
| 268 | [ Missing Number] ( https://leetcode.com/problems/missing-number ) | [ ![ Java] ( assets/java.png )] ( src/MissingNumber.java ) [ ![ Python] ( assets/python.png )] ( python/missing_number.py ) | |
Original file line number Diff line number Diff line change
1
+ // https://leetcode.com/problems/ugly-number-ii
2
+ // T: O(N)
3
+ // S: O(N)
4
+
5
+ public class UglyNumberII {
6
+ public int nthUglyNumber (int n ) {
7
+ final int [] dp = new int [n ];
8
+ dp [0 ] = 1 ;
9
+ int index2 , index3 , index5 ;
10
+ index2 = index3 = index5 = 0 ;
11
+ int factor2 = 2 , factor3 = 3 , factor5 = 5 ;
12
+
13
+ for (int i = 1 ; i < n ; i ++) {
14
+ final int uglyNumber = min (factor2 , factor3 , factor5 );
15
+ dp [i ] = uglyNumber ;
16
+ if (factor2 == uglyNumber ) factor2 = 2 * dp [++index2 ];
17
+ if (factor3 == uglyNumber ) factor3 = 3 * dp [++index3 ];
18
+ if (factor5 == uglyNumber ) factor5 = 5 * dp [++index5 ];
19
+ }
20
+
21
+ return dp [n -1 ];
22
+ }
23
+
24
+ private int min (int a , int b , int c ) {
25
+ return Math .min (a , Math .min (b , c ));
26
+ }
27
+ }
You can’t perform that action at this time.
0 commit comments