题目
https://leetcode-cn.com/problems/super-ugly-number/
代码
1.利用堆,利用set去重
class Solution {
public int nthSuperUglyNumber(int n, int[] primes) {
if(n==1)
return 1;
PriorityQueue<Long> queue=new PriorityQueue<>();
HashSet<Long> set=new HashSet<>();
set.add(1L);
queue.offer(1L);
int ugly=1;
for(int i=0;i<n;i++){
long cur=queue.poll();
ugly=(int)cur;
for(int j=0;j<primes.length;j++){
long a=cur*primes[j];
if(set.add(a)){
queue.offer(a);
}
}
}
return ugly;
}
}