丑数2

作者: lyoungzzz | 来源:发表于2017-07-12 14:03 被阅读12次

描述

设计一个算法,找出只含素因子2,3,5 的第 n 大的数。

样例

如果n = 9, 返回 10

代码实现

class Solution {
    /**
     * @param n an integer
     * @return the nth prime number as description.
     */
    public int nthUglyNumber(int n) {
        // Write your code here
        Queue<Long> Q = new PriorityQueue<Long>();
        HashSet<Long> inQ = new HashSet<Long>();
        Long[] primes = new Long[3];
        primes[0] = Long.valueOf(2);
        primes[1] = Long.valueOf(3);
        primes[2] = Long.valueOf(5);
        for (int i = 0; i < 3; i++) {
            Q.add(primes[i]);
            inQ.add(primes[i]);
        }
        Long number = Long.valueOf(1);
        for (int i = 1; i < n; i++) {
            number = Q.poll();
            for (int j = 0; j < 3; j++) {
                if (!inQ.contains(primes[j] * number)) {
                    Q.add(number * primes[j]);
                    inQ.add(number * primes[j]);
                }
            }
        }
        return number.intValue();
    }
}

相关文章

  • 4. 丑数(lintcode)

    因为丑数只含素因子2,3,5。所以 任一丑数 = 2或3或5 * 更小的丑数(因为丑数素因子只由2 3 5组成,所...

  • 丑数2

    描述 设计一个算法,找出只含素因子2,3,5 的第 n 大的数。 样例 代码实现

  • golang实现剑指offer:动态规划题型

    丑数 LeetCode 面试题49:丑数 题目描述 我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Nu...

  • 剑指offer-33-丑数

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

  • Java日记2018-05-17

    第一题 丑数把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。例如 6、8 都是丑数,但 14...

  • 丑数 / 逆序对 / 数字在排序数组中出现的次数

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

  • 《剑指offer》— JavaScript(33)丑数

    丑数 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因...

  • JZ-033-丑数

    丑数 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因...

  • 263、丑数(E)

    判断一个正整数是否为一个丑数。丑数的定义是 1 为丑数,只包含 2、3、5的数就是丑数,比如 4,8,但是14 就...

  • 剑指offer学习笔记:5.3 时间效率与空间效率的平衡

    面试题34:丑数我们把只包含因子2,3,5的数称为丑数。求按从小到大排列的第1500个丑数。例如,6,8都是丑数,...

网友评论

    本文标题:丑数2

    本文链接:https://www.haomeiwen.com/subject/iydbhxtx.html