Donada una llista de nombres enters
nums i un nombre enter
k (que ha de ser més petit o igual al
nombre d’elements diferents que hi ha a
nums) escriure una funció:
k_mes_frequents(nums,k)
que retorni una llista amb els k
elements que apareixen amb més freqüència dins de la llista
nums. Podeu retornar la resposta en
qualsevol ordre.
No és permés ordenar res (ni la llista
nums, ni cap altre estructura de dades
auxiliar que feu servir) dins la funció demanada. La vostra
proposta de solució de la funció
k_mes_frequents(nums,k) no pot fer servir
sort, sorted, ni variants.
Paràmetres i retorn de la funció demanada
Els paràmetres de la funció
k_mes_frequents(nums,k) són una llista
d’enters nums i un nombre
k que podem suposar que és més petit o
igual que el nombre d’elements diferents que hi ha a
nums.
La funció k_mes_frequents(nums,k) ha de
retornar una llista amb els k nombres més
freqüents a la llista nums. No importa
l’ordre en que apareguin, que el programa principal a
code.py ja s’encarrega d’ordenar abans
d’escriure.
L’entrada al programa serà, en aquest ordre, el nombre
k, un nombre
n i després una col·lecció
d’n nombres enters.
Vegeu els exemples del joc de proves públic.
El programa ha d’escriure una llista amb els
k elements més freqüents de la llista
d’n nombres proporcionats.
Vegeu els exemples del joc de proves públic.
Heu de baixar-vos el fitxer code.py
(icona de la serp). Aquest fitxer és un programa amb
tot el que cal per executar els jocs de prova públics.
Només falta, clar, la funció que us demana l’enunciat. Aquest fitxer
l’heu de completar amb el codi que falta, i això, tot,
és el que heu d’enviar al Jutge com a solució.
Dins el fitxer code.py teniu la classe
Heap que hem treballat a les classes de
laboratori. No caldrà que la vostra solució faci cap import ni
res. Tot el codi que us cal el teniu dins de
code.py.
En els jocs de prova d’aquest problema, tant públics com privats, us
garantim que la llista dels k elements més
freqüents demanada és única (excepte permutacions).
L’eficiència i la qualitat de la solució es tindran en compte a la
correcció manual. No es pot fer servir la funció sorted, ni
el mètode sort ni variants. Si ordeneu qualsevol
cosa dins la funció sereu penalitzats i la solució es considerarà
incorrecte.
Input
5 17 4 1 3 2 8 7 7 10 5 3 2 7 4 5 2 5 5
Output
[2, 3, 4, 5, 7]
Input
3 18 5 7 5 1 3 3 3 10 9 7 3 3 2 4 8 6 5 5
Output
[3, 5, 7]
Input
6 19 6 2 10 3 6 6 2 3 9 3 3 8 10 5 9 4 10 3 5
Output
[2, 3, 5, 6, 9, 10]
Input
4 16 7 1 6 2 6 3 8 4 1 8 5 4 9 6 4 8
Output
[1, 4, 6, 8]
Input
3 20 6 7 10 4 5 4 3 10 5 8 7 9 1 3 3 3 6 3 4 6
Output
[3, 4, 6]
Input
1 8 6 7 2 9 7 4 2 2
Output
[2]