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

  • 相关阅读:
    tomcat安装apr优化
    mysql配置主从同步
    hadoop分布式安装
    SSH端口转发详解及实例-转载
    Jmeter实现简单web负载测试
    使用Jmeter进行http接口测试
    Jmeter如何使用数据库返回值实践
    学习使用Jmeter做压力测试(一)--压力测试基本概念
    Jmeter建立一个扩展LDAP测试计划
    Jmeter服务器监控插件使用
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7653649.html
Copyright © 2011-2022 走看看