【剑指OFFER】49. 丑数
发布日期:2021-06-29 19:47:12 浏览次数:3 分类:技术文章

本文共 628 字,大约阅读时间需要 2 分钟。

题目:我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。

示例:

输入: n = 10

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

说明:

1 是丑数。

n 不超过1690。

答案:

class Solution {
public int nthUglyNumber(int n) {
if(n == 1) return 1; Set
s = new TreeSet<>(); // TreeSet 是有序的,且不重复 long answer = 1; for (int i = 1; i < n; i++) {
//取第i个丑数(每次都说set中最小的) s.add(answer * 2); s.add(answer * 3); s.add(answer * 5); Iterator it = s.iterator(); answer = (long)it.next(); s.remove(answer); } return (int)answer; }}

转载地址:https://darkness.blog.csdn.net/article/details/115600278 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【力扣】179. 最大数
下一篇:【Java】 用PriorityQueue实现最大最小堆

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月27日 09时28分04秒