Vergleichen Sie zwei Listen nach ihrem Maximum


14

Geben Sie bei zwei verschiedenen Listen nicht negativer Ganzzahlen die Liste mit dem höchsten Maximum zurück (z [4, 2], [3, 3, 1] -> [4, 2]. B. ).

Wenn beide dasselbe Maximum haben, geben Sie die Liste zurück, die mehr Instanzen dieses Maximums enthält (z [4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]. B. ).

Wenn sie nach diesen Vergleichen gleich sind, führen Sie den gleichen Vergleich durch, jedoch mit dem nächsthöheren Element (z [2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1]. B. ).

Wenn nach all diesen Vergleichen immer noch angenommen wird, dass sie gleich sind, geben Sie die längere Liste aus (z [4, 3, 2, 1, 0], [1, 2, 3, 4] -> [4, 3, 2, 1, 0]. B. ).

Machen Sie Ihren Code so kurz wie möglich.

Testfälle

[4, 4, 4, 4, 2, 4], [4, 4, 4, 4, 3, 2] -> [4, 4, 4, 4, 2, 4]
[0], [] -> [0]
[0, 0], [0] -> [0, 0]
[1], [0, 0] -> [1]
[4, 4, 4, 4, 4, 2], [4, 4, 4, 4, 4] -> [4, 4, 4, 4, 4, 2]
[1, 0], [0, 0, 0] -> [1, 0]

Antworten:


5

Pyth, 4 Bytes

eo_S

Probieren Sie es online aus

Erläuterung

eo_S
 o  NQ    Order the inputs...
  _S      ... by their reversed sorted values...
e         ... and take the last.


4

Gelee , 4 Bytes

NÞÞṪ

Probieren Sie es online!

Wie es funktioniert

NÞÞṪ  Main link. Argument: [u, v] (pair of vectors)

  Þ   Sort [u, v], using the link to the left as key.
NÞ      Sort u (or v) by the negatives of its values.
        This sorts the vector in descending order.
   Ṫ  Tail; select the last, lexicographically larger vector.

2

Haskell, 37-35 Bytes

import Data.Lists
argmax$sortOn(0-)

Die Eingabe wird als Liste mit zwei Elementen verwendet, z ( argmax$sortOn(0-) ) [[4,4,4,4,2,4], [4,4,4,4,3,2]].

Suchen Sie das Element in der Eingabeliste, das nach dem Sortieren maximal ist, indem Sie die Werte negieren (dh absteigende Reihenfolge).


2

Sauber , 42 Bytes

import StdEnv
s=sortBy(>)
?a b|s a>s b=a=b

Probieren Sie es online!


2
Huh, das ist eine interessante Syntax. Ich nehme an, es bedeutet "zurückkehren, awenn der Pattern Guard wahr ist und bsonst"?
Laikoni

@ Laikoni Yep. Pattern Guards in Clean ähneln syntaktisch einem C-Style if ... else if ..., in dem Sie sie verschachteln / verketten können. Und genau wie Sie weglassen können else if(true), können Sie die letzte Sicherheitsbedingung überspringen. (jedoch nur einmal pro Zeile)
Οurous

1

JavaScript (ES7), 52 Byte

(a,b,m=d=>d.map(n=>N+=1e4**n,N=0)&&N)=>m(a)>m(b)?a:b

Diese Methode funktioniert ohne Sortieren der Arrays. Stattdessen wird die Summe von 10.000 berechnet, die auf die Elemente jedes Arrays angewendet werden. Die größte Summe repräsentiert das Array mit der höchsten Punktzahl. (Bei dieser Lösung wird davon ausgegangen, dass keines der Arrays mehr als 10.000 Elemente enthält.)

Testfälle





0

Schale , 3 Bytes

►Ö_

Probieren Sie es online!

Diese Übermittlung verwendet im Grunde genommen eine Liste mit zwei Elementen als Eingabe und ruft das Maximum ( ) ab, sortiert nach ihren Werten, sortiert in absteigender Reihenfolge ( Ö_).



0

JavaScript (ES6), 98 Byte

(a,b,g=a=>[...a].sort((a,b)=>b-a),h=([a,...b],[c,...d])=>a==c?h(b,d):a<c|!(1/a))=>h(g(a),g(b))?b:a

gsortiert eine Kopie seines Parameters in umgekehrter Reihenfolge (da sortdas Array mutiert), während hrekursiv der elementweise Vergleich der Arrays durchgeführt wird.


0

Perl 6 , 17 Bytes

*.max(*.sort(-*))

Testen Sie es (Lambda Lambda Lambda)

  • -* Lambda, das die Eingabe numerisch negiert
  • *.sort(-*) Lambda, das verwendet, verwendet die Ergebnisse der Anwendung, um Elemente zu vergleichen
  • *.max(*.sort(-*)) Lambda, das das Maximum dieser Ergebnisse ermittelt und anhand dessen bestimmt, welche Eingabe zurückgegeben werden soll.

0

J, 20 Bytes

[:{.]\:[:#.[:>\:~&.>

Ungolfed:

[: {. ] \: [: #. [: > \:~&.>

Im Wesentlichen die Pyth-Antwort, unausgesprochen übersetzt in J.

Probieren Sie es online!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.