public IList <int> TopKFrequent(int[] nums, int k) { var occurences = new Dictionary <int, int>(); foreach (var num in nums) { if (occurences.ContainsKey(num)) { occurences[num]++; } else { occurences.Add(num, 1); } } var heap = new MinIntHeap(k); foreach (var kvp in occurences) { heap.Push(kvp); } var result = new List <int>(); while (k != 0) { result.Add(heap.Pop().Key); k--; } return(result); }
public void Peek_ZeroSizeTree_ThrowsArgumentOutOfRangeException() { MinIntHeap minIntHeap = new MinIntHeap(0); MaxIntHeap maxIntHeap = new MaxIntHeap(0); // Assert var ex = Assert.Throws <ArgumentOutOfRangeException>(() => minIntHeap.peek()); Assert.Contains("Tree size is zero", ex.Message); var ex2 = Assert.Throws <ArgumentOutOfRangeException>(() => maxIntHeap.peek()); Assert.Contains("Tree size is zero", ex2.Message); }
public KthLargest(int k, int[] nums) { _heap = new MinIntHeap(k); for (int i = 0; i < k && i < nums.Length; i++) { _heap.Push(nums[i]); } for (int i = k; i < nums.Length; i++) { AddImpl(nums[i]); } }
public void MinIntHashOverflowTest() { // Arrange MinIntHeap minIntHeap = new MinIntHeap(4); int[] arrayAnswer = { 5, 10, 15, 20, 17 }; int[] myArray = new int[5]; // Act minIntHeap.add(10); minIntHeap.add(15); minIntHeap.add(20); minIntHeap.add(17); minIntHeap.add(5); // Assert Assert.Equal(8, minIntHeap.GetHeapSize()); }
public void MinHashNodePullFuncTests() { // Arrange MinIntHeap minIntHeap = new MinIntHeap(); // 10 15 20 17 int[] arrayAnswer = { 15, 17, 20 }; int[] myArray = new int[4]; minIntHeap.add(10); minIntHeap.add(15); minIntHeap.add(20); minIntHeap.add(17); // Act minIntHeap.pull(); // Assert Assert.Equal(15, minIntHeap.pull()); }
public void MinHashTest() { // Test for MinHash Creation, add, and pull // Arrange MinIntHeap minIntHeap = new MinIntHeap(); int[] arrayAnswer = { 10, 15, 20, 17 }; int[] myArray = new int[4]; // Act minIntHeap.add(10); minIntHeap.add(15); minIntHeap.add(20); minIntHeap.add(17); // Assert Assert.Equal(10, minIntHeap.pull()); Assert.Equal(15, minIntHeap.pull()); Assert.Equal(17, minIntHeap.pull()); Assert.Equal(20, minIntHeap.pull()); }
public static void Main(string[] args) { int noOfTC = Convert.ToInt32(Console.ReadLine()); for (int t = 0; t < noOfTC; ++t) { ////int num = Convert.ToInt32(Console.ReadLine()); //string[] s1 = Console.ReadLine().Split(' '); ////int[] arr = Array.ConvertAll(s1, int.Parse); ////string str = Console.ReadLine(); //int i = 0; MinIntHeap minHeap = new MinIntHeap(); minHeap.add(10); minHeap.add(20); minHeap.add(15); minHeap.add(12); minHeap.add(16); int x = minHeap.peek(); minHeap.poll(); } Console.ReadLine(); }