[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/feixiangcode/algorithm/master/Week_02/id_27/LeetCode_692_027.java [Back]  [Original]

class Solution {

    class WordFreq {
		String word;
		Integer freq;

		@Override
		public String toString() {
			return "WordFreq [word=" + word + ", freq=" + freq + "]";
		}

		public WordFreq(String word, Integer freq) {
			super();
			this.word = word;
			this.freq = freq;
		}

	}


    public List topKFrequent(String[] words, int k) {


		Map map = new TreeMap();
		for (String s : words) {
			map.put(s, map.getOrDefault(s, 0) + 1);
		}

		TreeSet set = new TreeSet(new Comparator() {
			@Override
			public int compare(WordFreq o1, WordFreq o2) {
				if (o1.freq == o2.freq) {
					return o1.word.compareTo(o2.word);
				} else {
					return o2.freq - o1.freq;
				}

			}
		});

		for (String key : map.keySet()) {
			set.add(new WordFreq(key, map.get(key)));
		}

		List result = new ArrayList();
		for (WordFreq key : set) {
			if (k-- == 0)
				break;
			result.add(key.word);
		}

		return result;


    }
}

Web Proxy Viewer  |  New URL  |  Original Page