Skip to content

Instantly share code, notes, and snippets.

@MorrisLaw
Created June 3, 2022 11:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MorrisLaw/a49f966d1ec37b00efbd64bd4344a414 to your computer and use it in GitHub Desktop.
Save MorrisLaw/a49f966d1ec37b00efbd64bd4344a414 to your computer and use it in GitHub Desktop.
Top K Frequent Elements - LeetCode 347
func topKFrequent(nums []int, k int) []int {
freqMap := make(map[int]int)
for _, n := range nums {
freqMap[n]++
}
freqArr := make([][]int, len(nums)+1)
for k, v := range freqMap {
freqArr[v] = append(freqArr[v], k)
}
var result []int
freqArrLen := len(freqArr)
for i := freqArrLen-1; i > -1 && k > 0; i-- {
for _, n := range freqArr[i] {
result = append(result, n)
k--
if k == 0 {
return result
}
}
}
return result
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment