0
点赞
收藏
分享

微信扫一扫

超级丑数

码农K 2021-09-21 阅读 30
今日算法
题目描述
示例 1:
示例 2:
题目分析:
  • 第一个丑数是1
  • 后续丑数等于当前丑数乘primes
思路一:
代码实现:
class Solution {
    public int nthSuperUglyNumber(int n, int[] primes) {
        Set<Long> set = new HashSet();
        PriorityQueue<Long> queue = new PriorityQueue();
        queue.add(1l);
        set.add(1L);
        while (n-- > 0) {
            long num = queue.poll();
            if (n == 0) return (int) num;
            for (int idx : primes) {
                if (!set.contains(idx * num)) {
                    set.add(idx * num);
                    queue.add(idx * num);
                }
            }
        }
        return -1;
    }
}
举报

相关推荐

0 条评论