Matrycy optymalną (na raczej wąski zakres to wyzwanie) otrzymuje się przez „skompresowanie” elementy z odpowiednich rzędach i kolumnach kwadratowych macierzy i uzyskanie maksimum każdej pary.
Na przykład, biorąc pod uwagę następującą macierz:
4 5 6
1 7 2
7 3 0
Można łączyć je z przenoszą się: [[[4,5,6],[4,1,7]],[[1,7,2],[5,7,3]],[[7,3,0],[6,2,0]]]
. Jeśli zip każdą parę list, można uzyskać następujące: [[(4,4),(5,1),(6,7)],[(1,5),(7,7),(2,3)],[(7,6),(3,2),(0,0)]]
. Ostatnim krokiem jest uzyskanie maksimum każdej pary, aby uzyskać optymalną macierz:
4 5 7
5 7 3
7 3 0
Twoim zadaniem jest uzyskanie optymalnej macierzy macierzy kwadratowej podanej jako dane wejściowe. Macierz będzie zawierać tylko liczby całkowite. We / wy można wykonać w dowolnym rozsądnym formacie. Najkrótszy kod w bajtach (w UTF-8 lub w niestandardowym kodowaniu języka) wygrywa!
Testy
[[172,29], [29,0]] -> [[172,29], [29,0]] [[4,5,6], [1,7,2], [7,3,0]] -> [[4,5,7], [5,7,3], [7,3,0 ]] [[1,2,3], [1,2,3], [1,2,3]] -> [[1,2,3], [2,2,3], [3,3,3 ]] [[4,5, -6], [0,8, -12], [- 2,2,4]] -> [[4,5, -2], [5,8,2], [- 2,2,4]]
źródło
[1,2,3,4]
zamiast[[1,2],[3,4]]
? Zaoszczędziłby ~ 33%Odpowiedzi:
Galaretka , 2 bajty
Wypróbuj online!
Jak to działa
źródło
»
zachowuje ?!max
robi to samo.Haskell , 40 bajtów
Wypróbuj online!
Odholfowałbym to jako:
... który jest o wiele bardziej elegancki.
źródło
Łuska ,
54 bajtówWhoop, nigdy wcześniej nie musiałem używać
‡
(lub†
):Wypróbuj online!
Wyjaśnienie
źródło
Oktawa , 13 bajtów
Wypróbuj online!
źródło
MATL , 6 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
_t!Xl_
itt!&Xl
.APL (Dyalog Unicode) , 3 bajty
Anonimowa ukryta funkcja prefiksu.
Wypróbuj online!
⊢
argument⌈
sufitowe z⍉
transponowany argumentźródło
JavaScript (ES6), 48 bajtów
Przypadki testowe
Pokaż fragment kodu
źródło
J , 4 bajty
Funkcja ukrytego przedrostka.
Wypróbuj online!
>.
pułap [argumentu] z|:
transponowany argumentźródło
f=:
. : P na początku myślałem, że zmniejszyłeś bajt o 3 bajty ...<.
ma być>.
Japt ,
12108 bajtówSpójrz, mamo, nie ma transpozycji ani zipowania!
Spróbuj
źródło
CJam , 8 bajtów
Anonimowy blok (funkcja), który pobiera dane wejściowe ze stosu i zastępuje je danymi wyjściowymi.
Wypróbuj online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
R , 23 bajty
Wypróbuj online!
Jest to równoważne z większością innych odpowiedzi. Jednak R ma dwie różne
max
funkcje dla dwóch typowych scenariuszy:źródło
Czysty , 58 bajtów
Nie sądzę, że to wymaga wyjaśnienia.
Wypróbuj online!
źródło
C (gcc) ,
7977 bajtówWypróbuj online!
Pobiera na wejściu płaską tablicę liczb całkowitych
A
i wymiar macierzyn
(ponieważ macierz musi być kwadratowa) jako dane wejściowe. Wyprowadza na standardowe wyjście ciąg płaskiej reprezentacji ciągu tablicy liczb całkowitych.źródło
Julia 0.6 , 13 bajtów
max.
stosuje tę funkcjęmax
elementarnie do swoich argumentów.Wypróbuj online!
źródło
05AB1E , 7 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Galaretka , 7 bajtów
Wypróbuj online!
źródło
Python 2 , 45 bajtów
Wypróbuj online!
Dzięki totalnie ludzkiemu za kilka zapisanych bajtów.
źródło
Pari / GP , 21 bajtów
Wypróbuj online!
źródło
Wolfram Language (Mathematica) , 23 bajty
Port mojej odpowiedzi Pari / GP .
jest\[Transpose]
.Wypróbuj online!
źródło
Mathematica , 30 bajtów
-8 bajtów dzięki Jonathanowi Frechowi.
Wypróbuj online!
źródło