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

解析:如果一个一个的去枚举到第N个丑数,那么我们会惊喜的发现,这样做是很暴力的,而暴力往往是会付出“代价”的,此处的“代价”就是让你超时了。优雅的解法:利用三条队列来求解

“`
import java.util.*;
public class Solution {
public int GetUglyNumber_Solution(int index) {
if(index==0||index==1){
return index;
}

    List<Integer> list = new ArrayList<>();list.add(1);Queue<Integer> queue2 = new LinkedList();Queue<Integer> queue3 = new LinkedList();Queue<Integer> queue5 = new LinkedList();queue2.add(2);queue3.add(3);queue5.add(5);for(int i=1;i<index;i++){int q2=queue2.peek();int q3=queue3.peek();int q5=queue5.peek();int temp =Math.min(q5,Math.min(q2, q3));list.add(temp);//最小值是q2队列的if(temp==q2){queue2.poll();queue2.add(temp*2);queue3.add(temp*3);}if(temp==q3){queue3.poll();queue3.add(temp*3);}if(temp==q5){queue5.poll();queue2.add(temp*2);queue3.add(temp*3);queue5.add(temp*5);}}System.out.println(list);return list.get(index-1);
}

}“`

《剑指offer》丑数相关推荐

  1. 剑指Offer丑数问题

    这是剑指第一次卡死我的题--记录一下 首先看题目: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数 ...

  2. 剑指offer—丑数

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

  3. 剑指offer——丑数

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

  4. 剑指Offer49—丑数

    剑指Offer49-丑数 题意 我们把只包含质因子 2.3 和 5 的数称作丑数(Ugly Number).求按从小到大的顺序的第 n 个丑数. 丑数即只能被 2.3.5 整除.判断一个数是不是丑数的 ...

  5. 【前端js】实现剑指offer|leetcode(二)——数组题目集合

    文章目录 一.数组去重 1. 对排序数组去重(leetcode 26. 删除排序数组中的重复项) 2. 检查是否存在重复元素(leetcode 217. 存在重复元素) 3. 检查相邻k个元素是否存在 ...

  6. 剑指offer:丑数

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

  7. 【剑指offer】丑数

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

  8. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  9. 【LeetCode】剑指 Offer 49. 丑数

    [LeetCode]剑指 Offer 49. 丑数 文章目录 [LeetCode]剑指 Offer 49. 丑数 package offer;public class Solution49 {publ ...

  10. 剑指offer——面试题34:丑数

    剑指offer--面试题34:丑数 Solution1: 最容易想到的,也是最不可能AC的 class Solution {public:int GetUglyNumber_Solution(int ...

最新文章

  1. 人工智能的浪潮中,知识图谱何去何从?
  2. 如何把本地项目上传到Github
  3. linux安装python库报错pywin32_完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误...
  4. python如何读二进制文件_python怎么读二进制文件
  5. safari浏览器横屏怎么设置_如何避免苹果safari自带浏览器“跟踪”你的信息!
  6. 雅迪发布高端智能电动车G5 这个售价真的会有人买吗?
  7. php 保护图片地址,如何使用PHP正确保护图片上传?
  8. linux中查看mysql版本的方法汇总
  9. H3CTE讲师分享H3C认证培训实验9 IP基础
  10. 百度SEO之-关键词的种类
  11. 实习一个月,自我总结
  12. 安卓:股票筛选及分析系统
  13. 回帖专用奉承话,呵呵
  14. Windows Filtering Platform Windows筛选平台
  15. vscode react 代码格式化
  16. dell服务器新bois系统设置u盘启动,dell新版biosU盘启动顺序设置教程
  17. 平安新一贷怎么被拒了及原因是什么?你都知道吗?
  18. Shell 编程实践
  19. 如何将JPG图片转换成WEBP格式
  20. python中表示分支结构_下面Python关键字中,不用于表示分支结构的是()。

热门文章

  1. linux-压缩和解压类
  2. [Leetcode总结] 101.对称二叉树
  3. 年轻代为什么要设置两个Survivor区
  4. 垃圾回收GC Roots
  5. java 减法 位运算,位运算-实现加减乘除
  6. c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt
  7. python笔记之for循环
  8. Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutputStream用法)
  9. myeclipse10中表单中的JS函数无法写return,onsubmit=return check();处出错
  10. nginx虚拟目录支持PHP,nginx“虚拟目录”不支持php的解决方法