丑数 II

264. 丑数 II

给你一个整数 n ,请你找出并返回第 n 个 丑数 。

丑数 就是质因子只包含 23 和 5 的正整数。

示例 1:

输入:n = 10
输出:12
解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。

示例 2:

输入:n = 1
输出:1
解释:1 通常被视为丑数。

提示:

  • 1 <= n <= 1690

1、优先队列

class Solution {
    public int nthUglyNumber(int n) {
        int[] arr = {2,3,5};
        Set<Long> set = new HashSet();
        Queue<Long> que = new PriorityQueue();
        set.add(1L);
        que.add(1L);
        long x = 1;
        for(int i = 0;i < n; i++){
            x = que.poll();
            for(int num : arr){
                long t = num*x;
                if(!set.contains(t)){
                    set.add(t);
                    que.add(t);
                }
            }    
        }
        return (int)x;
    }
}

2、类似于暴力

class Solution {
    static int[] dp = new int[1691];

    public int nthUglyNumber(int n) {
        if (dp[1] == 0) { // 第一次
            dp[1] = 1;
            int p2 = 1, p3 = 1, p5 = 1;
            for (int i = 2; i <= 1690; i++) {
                // 要保证是递增的,因此只要一个数还没被用过,其对应的位置就别动。
                int num2 = 2 * dp[p2];
                int num3 = 3 * dp[p3];
                int num5 = 5 * dp[p5];
                dp[i] = Math.min(num2, Math.min(num3, num5));
                if (dp[i] == num2) { // 这个数字用过了,就动
                    p2++;
                }
                if (dp[i] == num3) {
                    p3++;
                }
                if (dp[i] == num5) {
                    p5++;
                }
            }
        }
        return dp[n];
    }
}

相关推荐

  1. 264. II

    2024-04-27 05:06:02       36 阅读
  2. 264. II

    2024-04-27 05:06:02       32 阅读
  3. II

    2024-04-27 05:06:02       24 阅读
  4. LeetCode 264 II

    2024-04-27 05:06:02       15 阅读
  5. 【归并排序】264. II

    2024-04-27 05:06:02       31 阅读
  6. LeetCode

    2024-04-27 05:06:02       34 阅读
  7. LertCode263.

    2024-04-27 05:06:02       21 阅读
  8. 263.

    2024-04-27 05:06:02       5 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-27 05:06:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-27 05:06:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-27 05:06:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-27 05:06:02       20 阅读

热门阅读

  1. 【笔试题汇总】字节跳动2024 春招第二场

    2024-04-27 05:06:02       17 阅读
  2. 洛谷 P1541 [NOIP2010 提高组] 乌龟棋

    2024-04-27 05:06:02       16 阅读
  3. MySQL-笔记-07.试图及索引的应用

    2024-04-27 05:06:02       14 阅读