zoukankan      html  css  js  c++  java
  • 剑指offer三十三之丑数

    一、题目

      如果一个数的因子中,出去1和本身以外,质数因子只包含2、3和5,则把改数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质数因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

          注释: 8的因子有1,2,4,8,出去1和8以后,还有因子2,4。其中质数因子只有2,因此8是丑数

                     14的因子有1,2,7,14,出去1和14以后,还有因子2,7。其中质数因子有2,7,而7不是2,3,5这几个数,因此14不是丑数

    二、思路

      动态规划,对于第i个数,它一定是之前已存在数的2倍,3倍或5倍

    三、代码

    import static java.lang.Math.min;
    
    /**
     * 动态规划,对于第i个数,它一定是之前已存在数的2倍,3倍或5倍
     */
    public class Solution {
    
        public int GetUglyNumber_Solution(int index) {
    
            if(index<=0){
                return 0;
            }
    
            int[] a=new int[index];
    
            a[0]=1;
    
            int index1=0;
            int index2=0;
            int index3=0;
    
            for(int i=1;i<index;i++){
                a[i]= min(a[index1]*2, min(a[index2]*3,a[index3]*5));
                if(a[i]==a[index1]*2){index1++;}
                if(a[i]==a[index2]*3){index2++;}
                if(a[i]==a[index3]*5){index3++;}
            }
    
    
            return a[index-1];
        }
    }
    View Code

    ---------------------------------------------

    参考链接:

    https://www.nowcoder.com/questionTerminal/6aa9e04fc3794f68acf8778237ba065b

  • 相关阅读:
    linux第三方程序移植
    jffs2文件系统制作
    NFS文件系统制作
    linux-3.0内核移植到fl2440开发板(以MINI2440为模板)
    linux根文件系统制作
    u-boot-2010.09移植(A)
    u-boot-2010.09移植(B)
    browser shell
    管理者的角色修炼-第三课-赢在执行
    管理者的角色修炼-第二课总结
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7653649.html
Copyright © 2011-2022 走看看