Beantworten Sie bei einer nicht leeren Matrix nicht negativer Ganzzahlen, welche eindeutigen Zeilen am meisten zur Gesamtsumme der Elemente in der Matrix beitragen.
Beantworten Sie die Fragen mit einem vernünftigen Hinweis, z. B. einer Maske mit der eindeutigen Reihenfolge des Erscheinungsbilds (oder der Sortierreihenfolge) oder Indizes (null- oder einsbasiert) oder einer Untermatrix, die aus den Zeilen (in beliebiger Reihenfolge) oder einigen besteht Art Wörterbuchkonstrukt… - aber erkläre es!
Beispiele
[[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]
:
Die einzigartigen Reihen sind [1,2,3]
, [2,0,4]
und die [6,3,0]
jeweils einen Beitrag 6, 6 und 9 jedesmal , wenn sie auftreten. Sie treten jedoch einmal, dreimal bzw. zweimal auf, sodass alle ihre jeweiligen Vorkommen 6, 18 und 18 zur Gesamtsumme (42) beitragen, sodass die beiden letztgenannten Zeilen am meisten beitragen. Gültige Antworten sind daher:
[false,true,true]
Maske in Aussehen / Sortierreihenfolge oder
[1,2]
/ [2,3]
null / eins-basierten Indizes der obigen oder
[[2,0,4],[6,3,0]]
der tatsächlichen Zeilen
⋮
[[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]]
[false,false,true]
(Erscheinungsreihenfolge) / [false,true,false]
(Sortierreihenfolge)
[2]
/ [3]
(Erscheinungsreihenfolge) / [1]
/ [2]
(Sortierreihenfolge)
[[2,3]]
⋮
quelle
Pyth , 9 Bytes
-1 danke an FryAmTheEggman!
Probieren Sie es online!
quelle
k
ist nicht nötig. Auch.M*sZ/QZ{
scheint dann eine gleiche Länge Lösung.R , 64 Bytes
Probieren Sie es online!
Gibt einen booleschen Vektor mit TRUE / FALSE in Sortierreihenfolge zurück (lexikografisch).
Die eindeutigen Zeilen werden als Vektornamen angezeigt, sodass die am meisten beitragenden Zeilen leicht identifiziert werden können.
quelle
Python 3 ,
153145129 Bytes-8 Bytes dank @Mr. Xcoder!
Probieren Sie es online!
quelle
Haskell, 60 Bytes
Gibt eine Liste der Zeilen zurück.
quelle
Holzkohle , 25 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Das Standardausgabeformat ist jedes Zeilenelement in einer eigenen Zeile und Zeilen mit doppeltem Abstand. Erläuterung:
quelle
Mathematica, 48 Bytes
oder
wo (zum Beispiel)
quelle
SortBy[Gather@m,Total@*Flatten][[-1,1]]
TakeLargestBy[Gather[m], Total[#, 2] &, 1][[1, 1]] /@ m
JavaScript (ES6), 88 Byte
Gibt ein Array mit Booleschen Werten in Darstellungsreihenfolge aus.
Probieren Sie es online!
quelle
Groovy , 76 Bytes
Probieren Sie es online!
Gibt als Boolesche Werte in Sortierreihenfolge zurück
quelle
Scala , 63 Bytes
Probieren Sie es online!
Gibt Boolesche Werte in Darstellungsreihenfolge zurück
quelle
APL (Dyalog Unicode) , 12 Byte
Probieren Sie es online!
-2 Dank an Adám . -1 dank alternativem Ausgabeformat.
quelle
Wolfram Language (Mathematica) , 42 Byte
Probieren Sie es online!
quelle
Python 2 ,
8178 BytesProbieren Sie es online!
3 Bytes Danke an Black Owl Kai .
Bei einer gegebenen Sammlung von Tupeln ist die Ausgabe eine Menge der Tupel mit der gewünschten maximalen Eigenschaft.
quelle
Japt ,
1311 Bytes-2 Bytes von @Shaggy
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) , 126 Byte
Probieren Sie es online!
Der größte Teil dieses Codes wird verwendet, um alle doppelten Werte zu entfernen, da der Standardvergleich für Listen die Werte in den Listen nicht vergleicht. Das bedeutet , dass ich nicht verwenden kann
Distinct()
,GroupBy()
oderContains
die Liste zu filtern.quelle
K (ngn / k) , 17 Bytes
Probieren Sie es online!
{
}
Funktion mit Argumentx
=x
group - Bilden Sie ein Wörterbuch, in dem die Schlüssel Zeilen und die Werte Listen ihrer Indizes in der Matrix sindx@
Indizieren Sie die ursprüngliche Matrix damit. Das Ergebnis ist wieder ein Wörterbuch mit den Zeilen als Schlüssel. Die Werte sind mehrere Kopien des entsprechenden Schlüssels+//'
Summe jeweils bis zur Konvergenz (wirkt sich nur auf die Werte aus; Schlüssel bleiben wie sie sind)a:
zuweisena
|/
Maximum (der Werte)a=|/a
ein Row-to-Boolean-Wörterbuch, dessen Zeilen den größten Beitrag leisten&
"wo", dh welche Schlüssel entsprechen den Werten von 1quelle
Japt,
1110 BytesFühren Sie es online aus
quelle
05AB1E ,
109 BytesProbieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
Gaia , 10 Bytes
Probieren Sie es online!
Da Gaia keine Listen durch Eingaben sehr einfach akzeptiert , ist dies eine Funktion , die eine Liste von oben nach oben auf dem Stapel akzeptiert und das Ergebnis oben belässt (als Masken in sortierter Reihenfolge).
quelle
J , 16 Bytes
Probieren Sie es online!
Ein monadisches Verb, das das boolesche Ergebnis in der Reihenfolge der Darstellung angibt.
Wie es funktioniert
quelle