Compare dos listas por su máximo


14

Dadas dos listas diferentes de enteros no negativos, devuelve la lista que tiene el máximo más alto (p [4, 2], [3, 3, 1] -> [4, 2]. Ej .).

Si ambos tienen el mismo máximo, devuelva la lista que contiene más instancias de este máximo (por ejemplo [4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]).

Si, después de estas comparaciones, son iguales, haga la misma comparación pero con su siguiente elemento más alto (p [2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1]. Ej .).

Si, después de todas estas comparaciones, todavía se consideran iguales, envíe la lista más larga (por ejemplo [4, 3, 2, 1, 0], [1, 2, 3, 4] -> [4, 3, 2, 1, 0]).

Haz tu código lo más corto posible.

Casos de prueba

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

Respuestas:


5

Pyth, 4 bytes

eo_S

Pruébalo en línea

Explicación

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


4

Jalea , 4 bytes

NÞÞṪ

Pruébalo en línea!

Cómo funciona

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-)

La entrada se toma como una lista de dos elementos, por ejemplo ( argmax$sortOn(0-) ) [[4,4,4,4,2,4], [4,4,4,4,3,2]].

Encuentre el elemento en la lista de entrada que es el máximo después de ordenar negando los valores (es decir, orden descendente).


2

Limpio , 42 bytes

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

Pruébalo en línea!


2
Eh, esa es una sintaxis interesante. ¿Supongo que significa "regresar asi el patrón de protección es verdadero y de botra manera"?
Laikoni

@Laikoni Sí. Los protectores de patrones en Clean son sintácticamente similares a un estilo C if ... else if ..., donde puedes anidarlos / encadenarlos. Y al igual que puede omitir else if(true), puede omitir la última condición de guardia. (sin embargo, solo una vez por línea)
Οurousado

1

JavaScript (ES7), 52 bytes

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

Este metodo funciona sin ordenar las matrices. En cambio, calcula la suma de 10,000 generada para los elementos de cada matriz. La suma más grande representa la matriz con la puntuación más alta. (Esta solución supone que ninguna matriz tiene más de 10,000 elementos).

Casos de prueba





0

Casco , 3 bytes

►Ö_

Pruébalo en línea!

Este envío básicamente toma una lista de dos elementos de listas como entrada y recupera el máximo ( ), ordenado por sus valores ordenados en orden descendente ( Ö_).



0

JavaScript (ES6), 98 bytes

(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

gordena una copia de su parámetro en orden inverso (ya que sortmuta la matriz), mientras hrealiza recursivamente la comparación por elementos de las matrices.


0

Perl 6 , 17 bytes

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

Pruébalo (Lambda Lambda Lambda)

  • -* lambda que niega numéricamente la entrada
  • *.sort(-*) lambda que usa que usa los resultados de aplicar eso para comparar elementos
  • *.max(*.sort(-*)) lambda que encuentra el máximo de esos resultados y lo usa para determinar qué entrada devolver.

0

J, 20 bytes

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

Sin golf:

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

Esencialmente, la respuesta de Pyth, traducida de manera imprecisa en J.

Pruébalo en línea!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.