题解 | #丑数#

丑数

http://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b

public class Solution {
    public int GetUglyNumber_Solution(int index) {
        //若小于7,全是丑数,直接返回对应的数
        if(index<7) return index;
        int[] num = new int[index];
        //第一个丑数是1
        num[0] = 1;
        int i=0,m=0,n=0;
        for(int j=1;j<index;j++){
            //丑数可以用1为基础,乘以2,3,5来得到下一个丑数,
            //比如2*2=4,2*3=6,从中选出最小的,就是下一个丑数.然后下标加一,
            num[j] = Math.min(num[i]*2, Math.min(num[m]*3,num[n]*5));
            if(num[j] == num[i]*2) i++;
            if(num[j] == num[m]*3) m++;
            if(num[j] == num[n]*5) n++;
        }
        //返回最后一个数
        return num[index-1];
    }
}
全部评论

相关推荐

04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
03-20 12:22
门头沟学院 Java
牛客998737654号:没有hc了吧,但是我接到到后端的面试邀请
投递美团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务