**[Lintcode]Ugly Number II 丑数 II
2016-12-04 17:27
423 查看
Ugly number is a number that only have factors
Design an algorithm to find the nth ugly number. The first 10 ugly numbers are
分析:
(1) 1×2, 2×2, 3×2, 4×2, 5×2, …
(2) 1×3, 2×3, 3×3, 4×3, 5×3, …
(3) 1×5, 2×5, 3×5, 4×5, 5×5, …
分成三组,每次取最小值做丑数,每组使用一个指针。然后被选中的数的指针后移。
class Solution {
/**
* @param n an integer
* @return the nth prime number as description.
*/
public int nthUglyNumber(int n) {
int[] arr = new int
;
arr[0] = 1;
int index = 1;
int a = 2, b = 3, c = 5;
int indexA = 1, indexB = 1, indexC = 1;
for(int i = 1; i < arr.length; i++) {
int min = Math.min(Math.min(a, b), c);
arr[i] = min;
if(a == min) a = arr[indexA++] * 2;
if(b == min) b = arr[indexB++] * 3;
if(c == min) c = arr[indexC++] * 5;
}
return arr[arr.length - 1];
}
};
2,
3and
5.
Design an algorithm to find the nth ugly number. The first 10 ugly numbers are
1, 2, 3, 4, 5, 6, 8, 9, 10, 12...
分析:
(1) 1×2, 2×2, 3×2, 4×2, 5×2, …
(2) 1×3, 2×3, 3×3, 4×3, 5×3, …
(3) 1×5, 2×5, 3×5, 4×5, 5×5, …
分成三组,每次取最小值做丑数,每组使用一个指针。然后被选中的数的指针后移。
class Solution {
/**
* @param n an integer
* @return the nth prime number as description.
*/
public int nthUglyNumber(int n) {
int[] arr = new int
;
arr[0] = 1;
int index = 1;
int a = 2, b = 3, c = 5;
int indexA = 1, indexB = 1, indexC = 1;
for(int i = 1; i < arr.length; i++) {
int min = Math.min(Math.min(a, b), c);
arr[i] = min;
if(a == min) a = arr[indexA++] * 2;
if(b == min) b = arr[indexB++] * 3;
if(c == min) c = arr[indexC++] * 5;
}
return arr[arr.length - 1];
}
};
相关文章推荐
- Ugly Number II(求第N个丑数)
- LintCode 4:Ugly Number II
- Ugly Number II(求第N个丑数)
- LeetCode Ugly Number II(丑数的计算)
- LeetCode OJ:Ugly Number II(丑数II)
- 264. Ugly Number II&丑数
- [C++]Ugly Number II丑数2
- LeetCode (39) Ugly Number I II (丑数)
- 丑数II(Ugly Number II)
- lintcode-medium-Ugly Number II
- 264. Ugly Number II LeetCode
- Ugly Number II
- 【LeetCode从零单刷】Ugly Number I, II & Super Ugly Number
- LeetCode题解——Ugly Number II
- leetcode 264 : Ugly Number II
- LeetCode -- Ugly Number II
- Ugly Number II
- LeetCode 264. Ugly Number II
- Leetcode184: Ugly Number II
- Ugly Number II