Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,890 questions

51,821 answers

573 users

How to find K most frequent elements in an unsorted array with Go

1 Answer

0 votes
package main

import (
	"fmt"
	"sort"
)

func PrintKMostFrequentNumbers(arr []int, K int) {
	mp := make(map[int]int)
	size := len(arr)

	for i := 0; i < size; i++ {
		mp[arr[i]]++
	}

	type kv struct {
		Key   int
		Value int
	}

	var sortedPairs []kv
	for k, v := range mp {
		sortedPairs = append(sortedPairs, kv{k, v})
	}

	sort.Slice(sortedPairs, func(i, j int) bool {
		return sortedPairs[i].Value > sortedPairs[j].Value
	})

	for i := 0; i < K && i < len(sortedPairs); i++ {
		fmt.Println(sortedPairs[i].Key)
	}
}

func main() {
	arr := []int{4, 5, 19, 50, 5, 19, 5, 8, 19, 3, 3, 6, 3, 27, 19, 3, 3}
	K := 2

	PrintKMostFrequentNumbers(arr, K)
}



/*
run:

3
19

*/

 



answered Nov 29, 2024 by avibootz

Related questions

...