Пример #1
0
        public IList <string> Find(string[] words, int k)
        {
            var result = new List <string>();

            var wordToCount = new Dictionary <string, int>();

            foreach (var word in words)
            {
                if (!wordToCount.ContainsKey(word))
                {
                    wordToCount[word] = 0;
                }
                wordToCount[word]++;
            }

            var myHeap = new MyMinHeap(k);

            // maintain a min-heap of size - K for storing most frequent words.
            foreach (var kv in wordToCount)
            {
                var newItem = new Item(kv.Value, kv.Key);
                myHeap.Insert(newItem);
            }

            var x = myHeap._data.Select(i => i.word).Reverse();

            return(x.ToList());
        }
Пример #2
0
 public MedianOfIntStream()
 {
     maxHeap = new MyMaxHeap <int>();
     minHeap = new MyMinHeap <int>();
 }