码迷,mamicode.com
首页 > 其他好文 > 详细

剑指 Offer 49. 丑数

时间:2020-12-21 12:11:13      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:class   定义   rgba   下标索引   col   ++   ber   mat   动态   

//动态规划
class Solution {
    public int nthUglyNumber(int n) {  
        //定义一个数组dp,来按序存放丑数
        int[] dp = new int[n];
        //第一个丑数是1
        dp[0] = 1;
        //分别定义由质因子 2,3,5 乘以较小丑数得到的下标索引
        int a2=0,a3=0,a5=0;
        //遍历,找丑数
        for(int i=1;i<n;i++){
            //最小的丑数排在最前
            dp[i] = Math.min(Math.min(dp[a2]*2,dp[a3]*3),dp[a5]*5);
            //更新索引
            if(dp[i] == dp[a2]*2) a2++;
            if(dp[i] == dp[a3]*3) a3++;
            if(dp[i] == dp[a5]*5) a5++;
        }
        return dp[n-1];
    }
}

 

剑指 Offer 49. 丑数

标签:class   定义   rgba   下标索引   col   ++   ber   mat   动态   

原文地址:https://www.cnblogs.com/peanut-zh/p/14146201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!