Inspiré par cette question et raffiné par Luis Mendo .
Défi
Étant donné une matrice 2D d'entiers, chaque ligne a une valeur maximale. Un ou plusieurs éléments de chaque ligne seront égaux à la valeur maximale de leur ligne respective. Votre objectif est de déterminer la ou les colonnes qui contiennent le plus d'entrées qui sont égales à la valeur maximale de leur ligne respective ainsi que le nombre de maxima par ligne trouvés dans ces colonnes.
Contribution
- L'entrée sera une matrice
M
x non videN
(M
> 0 etN
> 0) sous la forme qui convient le mieux à la langue de votre choix.
Production
- Votre programme doit renvoyer l' index de chaque colonne contenant le nombre maximal de maxima par ligne (sous forme de valeurs distinctes ou d'une liste). Vous pouvez utiliser une indexation à 0 ou à 1 (spécifiez dans votre description).
- Votre programme doit également renvoyer le nombre de maxima présents dans ces colonnes (un seul chiffre).
- L'ordre / format de la sortie est flexible mais doit être expliqué dans le texte accompagnant votre réponse.
Information additionnelle
- Toutes les entrées de la matrice d'entrée seront des entiers positifs.
- Si la valeur maximale d'une ligne est partagée par plusieurs éléments de cette ligne, toutes les occurrences de cette valeur comptent dans le total de leurs colonnes.
- Si plusieurs colonnes contiennent le même nombre de maxima, vous devez renvoyer une liste de toutes les colonnes qui avaient ce nombre de maxima.
Un exemple
Tenez compte des commentaires
7 93
69 35
77 30
La ligne 1 a un maximum de 93, qui n'apparaît qu'une seule fois, à savoir dans la colonne 2. La ligne 2: se produit dans la colonne 1. La ligne 3: également dans la colonne 1. La colonne gagnante est donc 1, avec 2 maxima. Ainsi, la sortie sera [1] [2]
. Si nous changeons l'entrée en
7 93
69 35
77 77
la sortie sera [1 2] [2]
, car les deux colonnes ont 2 maxima.
Cas de test
input => output ( [1-based index array], [nMaxima] )
----------------------------------------------
7 93
69 35 => [1], [2]
77 30
7 93
69 35 => [1 2], [2]
77 77
1 2 3 4 => [4], [2]
5 6 7 8
16 2 3 13
5 11 10 8 => [1 2 4], [1]
9 7 6 12
1 1 1 1 => [1 2 3 4], [1]
25 6 13 25 => [1 4], [1]
1
2
3 => [1], [4]
4
100 => [1], [1]
Notation
C'est le code-golf , le code le plus court en octets gagne. Tiebreaker revient à la réponse précédente.
Classement
Vous trouverez ci-dessous un extrait de pile pour analyser toutes les entrées.