Ugly Number II
Total Accepted: 2920 Total Submissions: 15174Write a program to find the n
-th ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first 10
ugly numbers.
Note that 1
is typically treated as an ugly number.
[思路]
[CODE]
public class Solution {
public int nthUglyNumber(int n) {
int u = 0;
List<Integer> l1 = new LinkedList<Integer>();
List<Integer> l2 = new LinkedList<Integer>();
List<Integer> l3 = new LinkedList<Integer>();
l1.add(1);
l2.add(1);
l3.add(1);
for(int i=0; i<n; i++) {
u = Math.min( Math.min(l1.get(0), l2.get(0)), l3.get(0));
if(l1.get(0) == u) l1.remove(0);
if(l2.get(0) == u) l2.remove(0);
if(l3.get(0) == u) l3.remove(0);
l1.add(u*2);
l2.add(u*3);
l3.add(u*5);
}
return u;
}
}