1
0
Fork 0
mirror of https://gitlab.com/mfocko/CodeWars.git synced 2024-09-18 21:56:57 +02:00
CodeWars/4kyu/hamming_numbers/solution.java
Matej Focko 851b2cc0bb
4kyu: add „Hamming Numbers“
Signed-off-by: Matej Focko <mfocko@redhat.com>
2022-08-08 19:21:21 +02:00

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;
}
}