题目描述
示例 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;
}
}