MCPcopy
hub / github.com/careercup/ctci / addNewNumber

Method addNewNumber

java/Chapter 18/Question18_9/Question.java:13–33  ·  view source on GitHub ↗
(int randomNumber)

Source from the content-addressed store, hash-verified

11 private static PriorityQueue<Integer> minHeap;
12
13 public static void addNewNumber(int randomNumber) {
14 /* Note: addNewNumber maintains a condition that maxHeap.size() >= minHeap.size() */
15 if (maxHeap.size() == minHeap.size()) {
16 if ((minHeap.peek() != null) &&
17 randomNumber > minHeap.peek()) {
18 maxHeap.offer(minHeap.poll());
19 minHeap.offer(randomNumber);
20 } else {
21 maxHeap.offer(randomNumber);
22 }
23 }
24 else {
25 if(randomNumber < maxHeap.peek()){
26 minHeap.offer(maxHeap.poll());
27 maxHeap.offer(randomNumber);
28 }
29 else {
30 minHeap.offer(randomNumber);
31 }
32 }
33 }
34
35 public static double getMedian() {
36 /* maxHeap is always at least as big as minHeap. So if maxHeap is empty, then minHeap is also. */

Callers 1

Calls 2

sizeMethod · 0.45
peekMethod · 0.45

Tested by

no test coverage detected