Question 3 Kth Smallest with Only 3, 5, 7 As Factors
PreviousQuestion 2: Maximum Cost of Trip With K HighWaysNextQuestion 4 K th Clostest Point to <0,0,0>
Last updated
Last updated
public long kth(int k) {
PriorityQueue<Long> minHeap = new PriorityQueue<>();
Long start = 3* 5* 7L;
Set<Long> visited = new HashSet<>();
minHeap.offer(start);
visited.add(start);
int step = 1;
while (!minHeap.isEmpty()) {
Long curValue = minHeap.poll();
if (step == k) {
return curValue;
}
if (!visited.contains(curValue * 3)) {
minHeap.offer(curValue * 3);
visited.add(curValue * 3);
}
if (!visited.contains(curValue * 5)) {
minHeap.offer(curValue * 5);
visited.add(curValue * 5);
}
if (!visited.contains(curValue * 7)) {
minHeap.offer(curValue * 7);
visited.add(curValue * 7);
}
step++;
}
return -1;
}