zoukankan      html  css  js  c++  java
  • Leetcode刷题日常--1

     首先是读懂题目,丑数是由1开始乘2,乘3或者乘5的数的一个有序序列。要得到第n个丑数,所以我们就需要得到直到n的丑数序列。得到这个序列,需要从1开始乘2,乘3或者乘5,就定义三个索引a,b,c,一开始索引的位置都为0,所以得到三个数n2=dp[a]*2,n3=p[b]*3,n5=p[c]*5,这三个数表示从索引位置的丑数乘2,乘3或者乘5得到的新的丑数。当乘以2后,乘以2的索引a++,乘3和乘5一样。由于序列是有序的,所以我们需要得到这三个数的最小值将其加入到序列中,如果加入的数为n2,则乘2的索引a++,如果加入的数为n3,则乘3的索引b++,如果加入的数为n5,则乘2的索引c++。由于n2,n3,n5可能互相相等,所以对三个位置的数都要进行判断是否为新加的丑数,如果是则索引位置加1,直到得到第n个丑数。

    public class Solution {
        public int NthUglyNumber(int n) {
            int[] dp = new int[n];
            dp[0] = 1;
            int a=0,b=0,c=0;
            for(int i=1;i<n;i++)
            {
                int n2 = dp[a]*2, n3 = dp[b]*3, n5 = dp[c]*5;
                int min = Math.Min(Math.Min(n2,n3),n5);
                dp[i] = min;
                if(dp[i] == n2)
                    a++;
                if(dp[i] == n3)
                    b++;
                if(dp[i] == n5)
                    c++;
            }
            return dp[n-1];
        }
    }
    

      

  • 相关阅读:
    Radmin View3.5
    delphi安装fastreport6
    大华监控设备配置文件导入生成工具
    大华监控和天地伟业监控免输密码登录助手
    锐捷交换机常用配置命令【加精】
    锐捷交换机的配置命令大全
    H3C常用配置命令
    锐捷交换机配置命令
    Delphi 随手笔记,使用了DEV控件组件
    读取软件的版本信息 GetFileVersionInfo
  • 原文地址:https://www.cnblogs.com/sjp737420/p/14587410.html
Copyright © 2011-2022 走看看