264. Ugly Number II
Write 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.
public class Solution {
public int nthUglyNumber(int n) {
if(n==1)return 1;
int []ugly=new int[n];
int m=0;
int p=0;
int q=0;
ugly[0]=1;
int index=1;
int mNum;
int pNum;
int qNum;
while (index<n){
mNum=ugly[m]*2;
pNum=ugly[p]*3;
qNum=ugly[q]*5;
int min=Math.min(mNum,pNum);
min= Math.min(min,qNum);
ugly[index++]=min;
if(mNum==min)
m++;
if(pNum==min)
p++;
if(qNum==min)
q++;
}
return ugly[n-1];
}
}