题目描述

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。

习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

《参考程序员面试金典》伪代码如下

1)初始化array和队列:Q2 Q3 Q5

2)将1插入array

3)分别将1*2、1*3 、1*5插入Q2 Q3 Q5

4)令x为Q2 Q3 Q5中的最小值,将x添加至array尾部

5)若x存在于:

Q2:将 x * 2、x * 3、x*5

分别放入Q2 Q3 Q5,从Q2中移除x

Q3:将 x * 3、x*5 分别放入Q3

Q5,从Q3中移除x

Q5:将 x * 5放入Q5,从Q5中移除x

6)重复步骤4~6,知道找到第k个元素

其实不用这么麻烦,将说所有的丑数存起来,然后利用丑数寻找下一个丑数就行了;

代码:

public int GetUglyNumber_Solution(int index) {

if(index<7)

return

index;

ArrayList res=new ArrayList();//存储丑数

res.add(1);//第一个丑数

int t2=0,t3=0,t5=0,i;

for(i=1;i

{

int

temp=Math.min(res.get(t2)*2,Math.min(res.get(t3)*3,res.get(t5)*5));

res.add(temp);

if(temp==res.get(t2)*2)t2++;

if(temp==res.get(t3)*3)t3++;

if(temp==res.get(t5)*5)t5++;

}

return  res.get(index-1);

}

java丑数算法_java实现找丑数相关推荐

  1. java快速查找算法_Java实现的快速查找算法示例

    本文实例讲述了Java实现的快速查找算法.分享给大家供大家参考,具体如下: 快速查找算法,可以根据想要找的是第几个大的数,每次循环都能固定下来一个数在数组完整排完序之后的位置,每次循环都能定一个数的位 ...

  2. java常见的算法_Java常用算法总结(转)

    交换排序 冒泡排序 将最后一个元素与倒数第二个元素对比,如果最后一个元素比倒数第二个小,则交换两个元素的位置,再用倒数第二个元素与倒数第三个元数对比,直到比到第一个元素,这样经过第一趟排序后得到第一个 ...

  3. java密码学原型算法_java密码学原型算法实现——双线性对.pdf

    java密码学原型算法实现--双线性对 Java 密码学原型算法实现--双线性对 1.背景介绍 如何使用jPBC 库进行双线性群初始化,包括: (1)质数阶双线性群(Prime-Order Bilin ...

  4. java 求交集 算法_Java计算交集,差集,并集的方法示例

    Java计算交集,差集,并集的方法示例 发布时间:2020-10-07 10:37:46 来源:脚本之家 阅读:106 作者:benbenkui 本文实例讲述了Java计算交集,差集,并集的方法.分享 ...

  5. java质因数算法_Java分解任意输入数的质因数算法的实现示例

    这篇文章主要介绍了Java实现分解任意输入数的质因数算法,涉及java数学运算相关操作技巧,需要的朋友可以参考下 本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: ...

  6. Java - 初探贪心算法(纸币找零,背包问题)

    贪心算法 1. 什么是贪心算法? 二.贪心算法的基本思路 三.贪心算法适用的问题 四.贪心算法的实现框架 五.贪心策略的选择 六.贪心算法的几个例子 1. 纸币找零问题 2. 背包问题 1. 什么是贪 ...

  7. java俄罗斯方块消除算法_Java 俄罗斯方块消行算法

    Java 俄罗斯方块消行算法 2020-08-12 11:02 阅读数 9 /** * 消行得分 */ private int plusExp() { //获取地图信息 boolean[][] gam ...

  8. java统计词频算法_Java实现的词频统计——功能改进

    本次改进是在原有功能需求及代码基础上额外做的修改,保证了原有的基础需求之外添加了新需求的功能. 功能: 1. 小文件输入--从控制台由用户输入到文件中,再对文件进行统计: 2.支持命令行输入英文作品的 ...

  9. java扫雷布雷算法_java 扫雷 如何随机布雷?

    importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/*按扭类*/classBombextendsJButton{publicint ...

最新文章

  1. 计算机视觉中的自注意力
  2. 准确率(Precision)、召回率(Recall)以及综合评价指标(F1-Measure )
  3. 一个免费的页面素材网站
  4. 浅谈对称加密与非对称加密
  5. 库克:大家会爱上有史以来最出色的iPhone和Apple Watch
  6. 【Flink】Flink 1.12.2 源码浅析 : TaskExecutor
  7. paip.性能跟踪profile原理与架构与本质-- python扫带java php
  8. 专卖店荣耀magicbookpro预装系统是Linux,换商家送的U盘里win10系统有影响吗?
  9. [转] Optimizely:在线网站A/B测试平台
  10. 思步网6月底再次重磅出击:《CrystalBall User Manual 7.3(水晶球操作手册7.3)中英文对照版》
  11. Mtlab 二次规划及其例子
  12. excel文件修复工具_ArcGIS工具箱使用技巧汇总
  13. kafka和flink的动态扩容
  14. codeforces-831A(Unimodal Array)
  15. matlab plotyy 坐标轴设置,[转载]Matlab plotyy画双纵坐标图实例
  16. python制作qq机器人_使用python打造一个自己的QQ机器人 【基础篇】
  17. 2022年最新有关“绿色消费积分”制度的行业利好
  18. 手机卫星定位系统_手机怎样连接北斗导航?一打开这个设置,马上连接,很简单...
  19. Android中实现ImageView圆角化的几种 方式
  20. 【方向盘】jdbc使用到了哪些设计模式

热门文章

  1. python内存注入代码_Python模板注入
  2. python编程语言继承_Python面向对象程序设计类的封装与继承用法示例
  3. “大胃王”吃播注意了 国家明确禁止发布量大多吃、暴饮暴食等节目
  4. 蔚来难迎“第二增长曲线”?
  5. 魅族预热魅族18系列:没有中杯 大杯起步
  6. 比亚迪汽车发布品牌全新标识 取消了椭圆型边界
  7. 刘强东退出武汉京东世纪贸易有限公司经理一职
  8. 钱准备好!苹果官方账号泄密:iPhone 12明晚发布有戏
  9. 转转、e代驾发布联合报告:代驾司机买二手手机看重验机、质保
  10. iPhone 12系列屏幕细节曝光:三星OLED屏独霸大半