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丑数的更多相关文章

  1. java算法之超级丑数

    问题描述: 写一个程序来找第 n 个超级丑数. 超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内. 比如给你 4 个质数的集合 [2, 7, 13, 19], 那么 [ ...

  2. 【Java】 剑指offer(49) 丑数

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 我们把只包含因子2.3和5的数称作丑数(Ugly Number). ...

  3. LeetCode 5198. 丑数 III(Java)容斥原理和二分查找

    题目链接:5198. 丑数 III 请你帮忙设计一个程序,用来找出第 n 个丑数. 丑数是可以被 a 或 b 或 c 整除的 正整数. 示例 1: 输入:n = 3, a = 2, b = 3, c ...

  4. 剑指Offer:面试题34——丑数(java实现)

    问题描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路1: ...

  5. 剑指Offer-32.丑数(C++/Java)

    题目: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 分析: ...

  6. Java实现 LeetCode 313 超级丑数

    313. 超级丑数 编写一段程序来查找第 n 个超级丑数. 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数. 示例: 输入: n = 12, primes = [2,7, ...

  7. Java实现 LeetCode 264 丑数 II(二)

    264. 丑数 II 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, ...

  8. Java实现 LeetCode 263 丑数

    263. 丑数 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 × 3 示例 2: 输入: 8 输 ...

  9. lintcode :Ugly Numbers 丑数

    题目 丑数 设计一个算法,找出只含素因子3,5,7 的第 k 大的数. 符合条件的数如:3,5,7,9,15...... 样例 如果k=4, 返回 9 挑战 要求时间复杂度为O(nlogn)或者O(n ...

  10. 剑指Offer——丑数

    剑指Offer--丑数 前言     参照<剑指Offer>,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固. package cn.edu.ujn.offersword; i ...

随机推荐

  1. 将 Timer 对象化

    Timer这玩意儿很常用,却又很烦人.烦人之处有四: 1.         如果将其设到HWND上,则 a)         必须手工维护Timer的ID,小心翼翼地保证这些ID不重复,可能有人(比如 ...

  2. .NET 7新特性

    2022年11月份微软推出了带有STS(标准期限支持)的.NET版本7,仅提供18个月的支持. 微软今年推出了STS版本,因为它已经在2019年提到,它将在每年11月左右发布一个新版本的.NET. 但 ...

  3. Blazor如何实现类似于微信的Tab切换?

    是否有小伙伴在使用tab的时候想进行滑动切换Tab? 并且有滑动左出左进,右出右进的效果 ,本文将讲解怎么在Blazor中去通过滑动切换Tab 本文中的UI组件使用的是MASA Blazor,您也可以 ...

  4. vulnhub靶场之FUNBOX: GAOKAO

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Funbox: GaoKao,下载地址:https://download.vulnhub.com/funbox/FunboxGaoKao.ova ...

  5. antd 3.x升4.x踩坑之路~

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 兼容性问题 第三方依赖兼容问题 React - 最低 v16.9,部 ...

  6. QQ、微信、微博、空间等分享链接接入

    一.HTMl代码 1.隐藏标签用于获取信息 <img style="display:none" id="coverImage" src="@it ...

  7. 【DS】1.2

    top-iron man   算法 效率度量 时间T=T(n) 1.顺序忽略2.只选一个基本操作分析3.多层嵌套只考虑最深的循环循环了几次  test1: test2: 空间   原地工作:算法所需内 ...

  8. Vue3 企业级优雅实战 - 组件库框架 - 12 发布开源组件库

    前面使用了 11 篇文章分享基于 vue3 .Monorepo 的组件库工程完整四件套(组件库.文档.example.cli)的开发.构建及组件库的发布.本文属于这 11 篇文章的扩展 -- 如何发布 ...

  9. EULAR2021_推文_大多数免疫抑制剂对辉瑞新冠疫苗效果影响小

    尤其令人开心的是TNF抑制剂和抗IL-17!但是,糖皮质激素.利妥昔单抗.吗替麦考酚酯(MMF).阿巴西普(抑制T淋巴细胞激活)会明显降低疫苗接种效果.链接:http://note.youdao.co ...

  10. Prometheus插件安装(cadvisor)

    简介 当docker服务数量到一定程度,为了保证系统的文档,我们就需要对docker进行监控.一般情况下我们可以通过docker status命令来做简单的监控,但是无法交给prometheus采集, ...