mirror of
https://gitlab.com/mfocko/CodeWars.git
synced 2024-11-09 11:09:07 +01:00
26 lines
588 B
Java
26 lines
588 B
Java
import java.util.PriorityQueue;
|
|
|
|
public class Hamming {
|
|
private static void update(PriorityQueue<Long> q, long n) {
|
|
q.add(2*n);
|
|
q.add(3*n);
|
|
q.add(5*n);
|
|
}
|
|
|
|
public static long hamming(int n) {
|
|
PriorityQueue<Long> cache = new PriorityQueue<>();
|
|
update(cache, 1);
|
|
|
|
long smallest = 1;
|
|
for (int i = 1; i < n; i++) {
|
|
smallest = cache.poll();
|
|
while (cache.peek() == smallest) {
|
|
cache.poll();
|
|
}
|
|
|
|
update(cache, smallest);
|
|
}
|
|
|
|
return smallest;
|
|
}
|
|
}
|