Bandingkan Dua Daftar dengan Maksimal mereka

14

Diberikan dua yang berbeda daftar bilangan bulat non-negatif, kembali daftar yang memiliki maksimum tertinggi (misalnya [4, 2], [3, 3, 1] -> [4, 2]).

Jika keduanya memiliki maksimum yang sama, kembalikan daftar yang berisi lebih banyak instance dari maksimum ini (misalnya [4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]).

Jika, setelah perbandingan ini, keduanya sama, lakukan perbandingan yang sama tetapi dengan item tertinggi berikutnya (mis [2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1].).

Jika, setelah semua perbandingan ini, mereka masih dianggap sama, mengeluarkan daftar yang lebih panjang (misalnya [4, 3, 2, 1, 0], [1, 2, 3, 4] -> [4, 3, 2, 1, 0]).

Buat kode Anda sesingkat mungkin.

Uji Kasus

[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]
0WJYxW9FMN
sumber

Jawaban:

5

Pyth, 4 byte

eo_S

Cobalah online

Penjelasan

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

sumber
4

Jelly , 4 byte

NÞÞṪ

Cobalah online!

Bagaimana itu bekerja

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.
Dennis
sumber
2

Haskell, 37 35 byte

import Data.Lists
argmax$sortOn(0-)

Input diambil sebagai daftar dua elemen, misalnya ( argmax$sortOn(0-) ) [[4,4,4,4,2,4], [4,4,4,4,3,2]].

Temukan elemen dalam daftar input yang merupakan maksimum setelah penyortiran dengan meniadakan nilai-nilai (yaitu urutan menurun).

nimi
sumber
2

Bersih , 42 byte

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

Cobalah online!

Suram
sumber
2
Hah, itu sintaks yang menarik. Saya ambil itu berarti "kembali ajika penjaga pola itu benar dan bsebaliknya"?
Laikoni
@Laikoni Yap. Pelindung pola di Clean secara sintaksis mirip dengan gaya-C if ... else if ..., tempat Anda dapat membuat sarang / rantai. Dan sama seperti Anda bisa menghilangkan else if(true), Anda dapat melewati kondisi penjaga terakhir. (Namun, hanya sekali per baris)
ousurous
1

JavaScript (ES7), 52 byte

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

Metode ini berfungsi tanpa menyortir array. Alih-alih, ia menghitung jumlah 10.000 yang dinaikkan ke setiap elemen array. Jumlah terbesar mewakili array dengan skor tertinggi. (Solusi ini mengasumsikan bahwa array tidak memiliki lebih dari 10.000 elemen.)

Uji kasus

Rick Hitchcock
sumber
0

Python 2 , 79 byte

lambda*a:max(a,key=lambda l:sum(zip(map(l.count,s(l)),s(l)),())[::-1])
s=sorted

Cobalah online!

ovs
sumber
0

Ruby 149 byte

->n,m{(n+m).sort.reverse.map{|i|r=((a=n.index(i))&&m.index(i)?(b=n.count(i))==(c=m.count(i))?nil:b>c ?n:m:a ?n:m);return r if r};n.size>m.size ? n:m}

Cobalah online!

Asone Tuhid
sumber
0

Sekam , 3 byte

►Ö_

Cobalah online!

Kiriman ini pada dasarnya mengambil daftar dua elemen dari daftar sebagai input dan mengambil maksimum ( ), diurutkan berdasarkan nilainya diurutkan dalam urutan menurun ( Ö_).

Tuan Xcoder
sumber
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

gmengurutkan salinan parameternya dalam urutan terbalik (karena sortbermutasi array), sementara hmelakukan perbandingan elemen array secara bertahap.

Neil
sumber
0

Perl 6 , 17 byte

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

Menguji (Lambda Lambda Lambda)

  • -* lambda yang secara numerik meniadakan input
  • *.sort(-*) lambda yang menggunakan yang menggunakan hasil menerapkan itu untuk membandingkan elemen
  • *.max(*.sort(-*)) lambda yang menemukan hasil maksimal, dan menggunakannya untuk menentukan input mana yang akan dikembalikan.
Brad Gilbert b2gills
sumber
0

J, 20 byte

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

Tidak Disatukan:

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

Pada dasarnya jawaban Pyth, diterjemahkan tanpa henti ke dalam J.

Cobalah online!

Jonah
sumber