Els K elements més freqüents Z12480


Statement
 

pdf   zip   main.py

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.

Entrada

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.

Sortida

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.

Observacions

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.

Public test cases
  • 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]
    
  • Information
    Author
    Jordi Delgado
    Language
    Catalan
    Translator
    Jordi Delgado
    Original language
    Spanish
    Other languages
    Spanish
    Official solutions
    Python
    User solutions
    Python