Inspiriert von dieser Frage und verfeinert von Luis Mendo .
Herausforderung
Bei einer 2D-Matrix von Ganzzahlen hat jede Zeile einen Maximalwert. Ein oder mehrere Elemente jeder Zeile entsprechen dem Maximalwert der jeweiligen Zeile. Ihr Ziel ist es zu bestimmen, welche Spalte (n) die meisten Einträge enthält, die dem Maximalwert der jeweiligen Zeile sowie der Anzahl der in diesen Spalten gefundenen zeilenweisen Maxima entsprechen.
Eingang
- Die Eingabe ist eine nicht leere
M
x-N
Matrix (M
> 0 undN
> 0) in einer beliebigen Form, die für die Sprache Ihrer Wahl gut geeignet ist.
Ausgabe
- Ihr Programm sollte den Index jeder Spalte zurückgeben, die die maximale Anzahl zeilenweiser Maxima enthält (entweder als separate Werte oder als Liste). Es kann entweder eine 0- oder eine 1-basierte Indizierung verwendet werden (in Ihrer Beschreibung angeben).
- Ihr Programm sollte auch die Anzahl der Maxima zurückgeben, die in diesen Spalten vorhanden waren (eine einzelne Zahl).
- Die Reihenfolge / das Format der Ausgabe ist flexibel, sollte jedoch im Text zu Ihrer Antwort erläutert werden.
zusätzliche Information
- Alle Einträge in der Eingabematrix sind positive ganze Zahlen.
- Wenn der Maximalwert einer Zeile von mehreren Elementen in dieser Zeile gemeinsam genutzt wird, werden alle Vorkommen dieses Werts auf die Gesamtsumme ihrer Spalten angerechnet.
- Wenn mehrere Spalten dieselbe Anzahl von Maxima enthalten, sollten Sie eine Liste aller Spalten zurückgeben, die diese Anzahl von Maxima hatten.
Ein Beispiel
Eingabe berücksichtigen
7 93
69 35
77 30
Zeile 1 hat das Maximum 93, das nur einmal vorkommt, nämlich in Spalte 2. Zeile 2: tritt in Spalte 1 auf. Zeile 3: auch in Spalte 1. Die Gewinnerspalte ist also 1 mit 2 Maxima. Somit wird die Ausgabe sein [1] [2]
. Wenn wir die Eingabe auf ändern
7 93
69 35
77 77
Die Ausgabe erfolgt [1 2] [2]
, da beide Spalten 2 Maxima haben.
Testfälle
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]
Wertung
Dies ist Code-Golf , der kürzeste Code in Bytes gewinnt. Tiebreaker geht zur früheren Antwort.
Bestenliste
Unten finden Sie einen Stapelausschnitt zur Analyse aller Einträge.