import java.util.*; public class Solution { public int GetUglyNumber_Solution(int index) { if(index == 0){ return 0; } HashSet<Long> set = new HashSet<>(); PriorityQueue<Long> pq = new PriorityQueue<>(); set.add(1l); pq.offer(1l); long num = 0; for(int i = 0;i<index;i++){ num = pq.poll(); if(!set.contains(2*num)){ set.add(num*2); pq.offer(num*2); } if(!set.contains(3*num)){ set.add(num*3); pq.offer(num*3); } if(!set.contains(5*num)){ set.add(num*5); pq.offer(num*5); } } return (int)num; } }