leetcode uglynumber

来源:互联网 发布:域名注册阿里云 编辑:程序博客网 时间:2024/05/22 06:55

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Note that 1 is typically treated as an ugly number.

如何寻找第n个丑数?

维护2、3、5三个链表作为索引,每次寻找min(result[index2]*2,result[index3]*3,result[index5]*5)

public int nthUglyNumber(int n) {    int[] result=new int[n];    result[0]=1;    int index2=0,index3=0,index5=0;    int count=1;    for(int i=1;i<n;i++)    {      result[i]=min(result[index2]*2,result[index3]*3,result[index5]*5);        if(result[i]==result[index2]*2)            index2++;        if(result[i]==result[index3]*3)            index3++;        if(result[i]==result[index5]*5)            index5++;    }    return result[n-1];}public int min(int a,int b,int c){    int min=a<b?a:b;    return min<c?min:c;}

0 0
原创粉丝点击