İki Listeyi Maksimumlarına Göre Karşılaştır


14

İki farklı negatif olmayan tamsayı listesi verildiğinde, en yüksek maksimum değere sahip listeyi döndürün (ör. [4, 2], [3, 3, 1] -> [4, 2]).

Her ikisi de aynı maksimum değere sahipse, bu maksimum değerin daha fazla örneğini içeren listeyi döndürün (örneğin [4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]).

Bu karşılaştırmalardan sonra eşitse, aynı karşılaştırmayı ancak bir sonraki en yüksek kalemleriyle (örn. [2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1]) Yapın .

Tüm bu karşılaştırmalardan sonra, yine de eşit kabul edilirlerse, daha uzun listeyi (ör [4, 3, 2, 1, 0], [1, 2, 3, 4] -> [4, 3, 2, 1, 0].

Kodunuzu mümkün olduğunca kısa yapın.

Test Durumları

[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]

Yanıtlar:


5

Pyth, 4 bayt

eo_S

Çevrimiçi deneyin

açıklama

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


4

Jöle , 4 bayt

NÞÞṪ

Çevrimiçi deneyin!

Nasıl çalışır

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 bayt

import Data.Lists
argmax$sortOn(0-)

Giriş iki elemanlı bir liste olarak alınır, örn ( argmax$sortOn(0-) ) [[4,4,4,4,2,4], [4,4,4,4,3,2]].

Değerleri (örn. Azalan sıralama) reddederek sıralamadan sonra maksimum olan giriş listesinde öğeyi bulun.


2

Temiz , 42 bayt

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

Çevrimiçi deneyin!


2
Hah, bu ilginç bir sözdizimi. Ben " abu desen koruyucusu doğru ve baksi takdirde geri dönmek" anlamına gelir ?
Laikoni

@Laikoni Yep. Clean'teki desen korumaları sözdizimsel olarak if ... else if ..., iç içe / zincirleyebileceğiniz bir C stiline benzer . Ve atlayabildiğiniz gibi else if(true), son koruma koşulunu atlayabilirsiniz. (ancak, her satıra yalnızca bir kez)
Janurous

1

JavaScript (ES7), 52 bayt

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

Bu yöntem çalışır olmadan dizileri sıralama. Bunun yerine, her bir dizinin öğelerine eklenen 10.000 toplamı hesaplar. En büyük toplam, en yüksek puana sahip diziyi temsil eder. (Bu çözüm, hiçbir dizinin 10.000'den fazla öğeye sahip olmadığını varsayar.)

Test senaryoları





0

Kabuk , 3 bayt

►Ö_

Çevrimiçi deneyin!

Bu gönderim temel olarak iki elemanlı liste listesini girdi olarak alır ve değerlerine (azalan düzende ( Ö_) ) göre sıralanmış maksimum ( ) değerini getirir .



0

JavaScript (ES6), 98 bayt

(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

gdizilerinin mutasyonlu olarak karşılaştırmasını sortyaparken , parametresinin bir kopyasını ters sırada sıralar ( diziyi değiştirir) h.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.