public int Add(int val) { pq.Add(val); if (pq.Count() > size) { pq.Pop(); } return(pq.Peek()); }
public void HeapOperationsMethod() { MinHeap minHeap = new MinHeap(); minHeap.Add(4); minHeap.Add(2); minHeap.Add(1); while (minHeap.Count > 0) { Console.WriteLine(minHeap.Pop()); } }
public void MinHeap_Solutions() { var minHeap = new MinHeap <int>(); minHeap.Push(1); Assert.AreEqual(1, minHeap.Peek()); minHeap.Push(2); Assert.AreEqual(1, minHeap.Peek()); minHeap.Push(3); Assert.AreEqual(1, minHeap.Peek()); minHeap.Push(4); Assert.AreEqual(1, minHeap.Peek()); minHeap.Push(5); Assert.AreEqual(1, minHeap.Peek()); Assert.AreEqual(1, minHeap.PopPush(6)); Assert.AreEqual(2, minHeap.Peek()); minHeap.Push(0); Assert.AreEqual(0, minHeap.Peek()); Assert.AreEqual(0, minHeap.Pop()); Assert.AreEqual(2, minHeap.Pop()); Assert.AreEqual(3, minHeap.Pop()); Assert.AreEqual(4, minHeap.Pop()); Assert.AreEqual(5, minHeap.Pop()); Assert.AreEqual(6, minHeap.Pop()); Assert.AreEqual(0, minHeap.Count); }
public KthLargest(int k, int[] nums) { pq = new MinHeap(k + 1); size = k; foreach (int n in nums) { pq.Add(n); if (pq.Count() > size) { Console.WriteLine("removing: ", pq.Peek()); pq.Pop(); } } }