File tree Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change 215215| 260 | [ Single Number III] ( https://leetcode.com/problems/single-number-iii ) | [ ![ Java] ( assets/java.png )] ( src/SingleNumberIII.java ) | |
216216| 261 | 🔒 [ Graph Valid Tree] ( https://leetcode.com/problems/graph-valid-tree ) | | |
217217| 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 ) | |
219219| 266 | 🔒 [ Palindrome Permutation] ( https://leetcode.com/problems/palindrome-permutation ) | | |
220220| 267 | 🔒 [ Palindrome Permutation II] ( https://leetcode.com/problems/palindrome-permutation-ii ) | | |
221221| 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