编写一个程序,找出第 n 个丑数。

丑数就是质因数只包含 2, 3, 5 的正整数。

示例:

输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
说明:

1 是丑数。
n 不超过1690。

解题思路

直接用treeset去重和排序

代码

class Solution {public int nthUglyNumber(int n) {TreeSet<Long> set=new TreeSet<>();long temp=1;int count=0;set.add(1l);while (count<n){temp=set.pollFirst();count++;set.add(temp*2);set.add(temp*3);set.add(temp*5);}return (int)temp;}
}

动态规划代码

class Solution {public int nthUglyNumber(int n) {int[] dp=new int[n+1];int d2=0,d3=0,d5=0;dp[0]=1;for(int i=1;i<n;i++){int min= Math.min(Math.min(dp[d2]*2,dp[d3]*3),dp[d5]*5);//最小的进数组dp[i]=min;if(dp[d2]*2==min) d2++;//已经出现了直接跳到下一个,防止重复if(dp[d3]*3==min) d3++;if(dp[d5]*5==min) d5++;}return dp[n-1];}
}

leetcode264. 丑数 II相关推荐

  1. LeetCode 264. 丑数 II

    264. 丑数 II Ideas 竟然没想到用小根堆,白学了,再把小根堆抄一遍. Code Python class Solution:def nthUglyNumber(self, n: int) ...

  2. LeetCode 263. 丑数 264. 丑数 II(DP)

    文章目录 1. LeetCode 263. 丑数 解题 2. LeetCode 264. 丑数 II DP解题 1. LeetCode 263. 丑数 编写一个程序判断给定的数是否为丑数. 丑数就是只 ...

  3. leetcode - 264. 丑数 II

    264. 丑数 II -------------------------------------------- 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示 ...

  4. 693. 交替位二进制数 / 227. 基本计算器 II / 264. 丑数 II

    693. 交替位二进制数[简单题][每日一题] 思路:[位运算] 排除特殊情况n=1,此时return true. 将n转为二进制字符串,依次将相邻两位数字进行异或运算. 异或运算的结果为flag,如 ...

  5. 【LeetCode】263.丑数 264. 丑数 II

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

  6. java丑数算法_LintCode Java算法练习(4)-----丑数II

    题目:题目 1 = 2^0 * 3^0 * 5^0 2 = 2^1 * 3^0 * 5^0 3 = 2^0 * 3^1 *5^0 . . . 依次类推,这便是丑数 假设  uglyNumber = 2 ...

  7. Leetcode 264. 丑数 II 解题思路及C++实现

    方法一:暴力解法 解题思路: 直接从整数1开始,不断递增,判断该数字是否为丑数(专门写一个判断是否为丑数的函数),当遇到一个丑数,则计数值加1,直至遇到n个丑数为止. 当n很大时,这种暴力解法会遇到 ...

  8. 86. Leetcode 264. 丑数 II (动态规划-基础题)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, ...

  9. 78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, ...

最新文章

  1. 慎用AXIS2(续)
  2. linux WiFi源码解析,Wifi移植浅析
  3. linux下 tar解压 gz解压 bz2等各种解压文件使用方法
  4. c++ 的makefile文件实例
  5. c++string转char数组_C++ 算法题解:打印沙漏、素数对猜想、数组元素循环右移问题...
  6. linux命令中xargs,在Linux上使用xargs命令的详细教程
  7. python 异常点检测 cook距离_DLI 精选课程 | 三种AI方法检测网络、业务或设备异常状况...
  8. 华为机试HJ29: 字符串加解密
  9. CC2530和8051(51单片机)的关系
  10. Windows11快捷键大全 win11常用快捷键介绍
  11. 计算机实训实验报告,审计实务实验报告总结审计实训实验报告计算机审计实验总结...
  12. 教师个人三年发展规划
  13. 【MM模块】Physical Inventory  库存盘点流程
  14. 【英雄九日集训】(七月第一轮)第一天——数组
  15. php+mysql企业员工培训管理系统dzkf87
  16. MIUI10国际版系统自定义字体设置办法
  17. 为什么很多人自律,最后变成了放纵?
  18. 爬取某视频网站的电影
  19. 马斯克说没想到造星际飞船这么便宜:原以为要百亿美元
  20. Fabric 1.0源代码分析(2) blockfile(区块文件存储)

热门文章

  1. 【FPGA Verilog】实验二:key按键基础实验
  2. 非阻塞connect
  3. web开发课程,HTML常用的五种标签,附赠课程+题库
  4. JavaScript知识笔记(三)——内置对象、浏览器对象
  5. 随笔--互联网进化论
  6. DataTable不能通过已删除的行访问该行的信息解决方法
  7. Polling 、Long Polling 和 WebSocket
  8. DStream算子讲解(一)
  9. ImageView缩放选项
  10. C# 实现一个可取消的多线程操作 示例