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

1 Answer

0 votes
fun printKMostFrequentNumbers(arr: IntArray, K: Int) {
    val mp = mutableMapOf<Int, Int>()
    val size = arr.size

    for (i in 0 until size) {
        mp[arr[i]] = mp.getOrDefault(arr[i], 0) + 1
    }

    val sortedMap = mp.toList().sortedByDescending { it.second }

    for (i in 0 until K) {
        println(sortedMap[i].first)
    }
}

fun main() {
    val arr = intArrayOf(4, 5, 19, 50, 5, 19, 5, 8, 19, 3, 3, 6, 3, 27, 19, 3, 3)
	val K = 2

	printKMostFrequentNumbers(arr, K)
}


 
/*
run:
   
3
19
   
*/

 



answered Nov 29, 2024 by avibootz

Related questions

...