首页 > 编程语言 >JAVA丑数

JAVA丑数

时间:2022-09-28 01:34:10浏览次数:85  
标签:丑数 JAVA int i3 i5 i7 ++ dp

leetcode题目链接

有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。

示例 1:

输入: k = 5

输出: 9

根据题意我们可以知道,一个满足要求的数一定是之前的一个dp3* 3,dp5* 5,dp7* 7,并且这一结果一定是三个乘积的最小值,因此我们只需要记录3,5,7各自dp的值,再相互与 3,5,7 相乘,取其中的最小值,就是当前的目标值。代码如下

    public int getKthMagicNumber(int k) {
        int i3 = 0, i5 = 0, i7 = 0;
        int[] dp = new int[k];
        dp[0] = 1;
        for(int i = 1; i < k; i++){
            // 3 5 7 9 15 21 25
            // 1 1 1 2 3  4  4  i3
            // 0 1 1 1 2  2  3  i5
            // 0 0 1 1 1  2  2  i7
            dp[i] = Math.min(Math.min(dp[i3]*3, dp[i5]*5) , dp[i7]*7);
            if(dp[i] == dp[i3]*3)i3++;
            if(dp[i] == dp[i5]*5)i5++;
            if(dp[i] == dp[i7]*7)i7++;
        }
        return dp[k-1];
    }

标签:丑数,JAVA,int,i3,i5,i7,++,dp
From: https://www.cnblogs.com/tutaotao/p/16736585.html

相关文章

  • 【设计模式】Java设计模式 - 命令模式
    Java设计模式-命令模式......
  • 一个五颜六色的Java 图形验证码模块
    分享一个网上找的开源的Java图形验证码项目EasyCaptcha先来个福利图看看1.简介 Java图形验证码,支持gif、中文、算术等类型,可用于JavaWeb、JavaSE等项目。2.效......
  • 基于SSM+Vue健身预约系统Java健身房管理系统 健身器材管理系统(源码调试+讲解+文档)
    ......
  • JavaWeb5 JDBC
       packagecom.itheima.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLOutput;importjava.sql.Statement;publi......
  • Java流程控制06(循环结构1)
    while循环do...while循环while循环:while是最基本的循环,它的结构为:while(布尔表达式){//循环内容}只要布尔表达式为true,循环就会一直执行下去我们大多......
  • 在2016年如何学习JavaScript?
    在2016年如何学习JavaScript?作者:​​VincentO​​译者:相信有不少人已经读过​​在2016年学JavaScript是一种什么样的体验?​​这篇神文,那么假如你真的要在2016年开始学......
  • Java: Command Patterns
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*命令模式CommandPatterns*历史版本:JDK14.02*2022-09-12创建者geovindu*2022-09-12......
  • Javaweb核心之注解开发Servlet
    这是一篇关于讲解如何正确使用51CTO博客-Markdown的排版示例,希望通过此,大家都能轻松上手,都能通过Markdown能#4注解开发Servlet4.1Servlet3.0规范4.2注解开发入门案......
  • Java多线程内存读写 —— 内存屏障的理解
    在现代计算机中,CPU往往都是多核的,而由于每个CPUCore中都有自己的高速缓存Cache,因此就会造成内存数据读写的不一致性,表现为 ​​指令乱序​​​ 与 ​​不可见性​​​ ......
  • Javaweb核心响应对象
    1响应对象1.1响应对象概述1.1.1关于响应响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单来说,指的就是服务器把请求的处理结果告知客户端......