Biorąc pod uwagę niepustą macierz nieujemnych liczb całkowitych, odpowiedz, które unikalne wiersze najbardziej przyczyniają się do sumy elementów w macierzy.
Odpowiedz na dowolne uzasadnione wskazanie, na przykład maskę unikatowej kolejności wyświetlania wierszy (lub kolejności sortowania), indeksów (zerowych lub opartych na jednym) z nich, lub podmacierz składającą się z wierszy (w dowolnej kolejności) lub niektórych rodzaj konstruowania słownika… - ale wyjaśnij to!
Przykłady
[[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]
:
Unikalnymi wierszami są [1,2,3]
, [2,0,4]
i [6,3,0]
każdy z nich wnosi odpowiednio 6, 6 i 9 za każdym razem, gdy występują. Występują one jednak odpowiednio raz, trzykrotnie i dwa razy, więc wszystkie ich wystąpienia przyczyniają się do 6, 18 i 18 do całości (42), więc te dwa ostatnie rzędy są tymi, które mają największy udział. Prawidłowe odpowiedzi to:
[false,true,true]
maska w wyglądzie / porządku sortowania lub
[1,2]
/ [2,3]
zero / jeden indeksy powyższych lub
[[2,0,4],[6,3,0]]
rzeczywistych wierszy
⋮
[[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]]
[false,false,true]
(kolejność pojawiania się) / [false,true,false]
(kolejność sortowania)
[2]
/ [3]
(kolejność pojawiania się) / [1]
/ [2]
(kolejność sortowania)
[[2,3]]
⋮
źródło
Pyth , 9 bajtów
-1 dzięki FryAmTheEggman!
Wypróbuj online!
źródło
k
nie jest konieczny..M*sZ/QZ{
Wydaje się również, że jest to rozwiązanie o tej samej długości.R , 64 bajty
Wypróbuj online!
Zwraca wektor boolowski z PRAWDA / FAŁSZ w porządku sortowania (leksykograficznym).
Unikalne wiersze są wyświetlane jako nazwy wektorowe, dzięki czemu łatwo jest zidentyfikować te, które najbardziej się do tego przyczyniły.
źródło
Python 3 ,
153145129 bajtów-8 bajtów dzięki @Mr. Xcoder!
Wypróbuj online!
źródło
Haskell, 60 bajtów
Zwraca listę wierszy.
źródło
Węgiel , 25 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Domyślnym formatem wyjściowym jest każdy element wiersza w osobnej linii i wiersze w podwójnych odstępach. Wyjaśnienie:
źródło
Mathematica, 48 bajtów
lub
gdzie (na przykład)
źródło
SortBy[Gather@m,Total@*Flatten][[-1,1]]
TakeLargestBy[Gather[m], Total[#, 2] &, 1][[1, 1]] /@ m
JavaScript (ES6), 88 bajtów
Zwraca tablicę wartości logicznych w kolejności wyglądu.
Wypróbuj online!
źródło
Groovy , 76 bajtów
Wypróbuj online!
Zwraca jako logiczne w porządku sortowania
źródło
Scala , 63 bajty
Wypróbuj online!
Zwraca wartość logiczną w kolejności wyglądu
źródło
APL (Dyalog Unicode) , 12 bajtów
Wypróbuj online!
-2 dzięki Adámowi . -1 dzięki alternatywnemu formatowi wyjściowemu.
źródło
Wolfram Language (Mathematica) , 42 bajty
Wypróbuj online!
źródło
Python 2 ,
8178 bajtówWypróbuj online!
3 bajki dzięki Black Owl Kai .
Biorąc pod uwagę zbiór krotek, dane wyjściowe są zbiorem krotek mających pożądaną maksymalną właściwość.
źródło
Japt ,
1311 bajtów-2 bajty z @Shaggy
Wypróbuj online!
źródło
C # (interaktywny kompilator Visual C #) , 126 bajtów
Wypróbuj online!
Większość tego kodu jest wydawana na usuwanie wszystkich zduplikowanych wartości, ponieważ domyślny moduł porównujący listy nie porównuje wartości wewnątrz list. Oznacza to, że nie mogę używać
Distinct()
,GroupBy()
lubContains
filtrować listę.źródło
K (ngn / k) , 17 bajtów
Wypróbuj online!
{
}
funkcja z argumentemx
=x
grupa - utwórz słownik, w którym klucze są wierszami, a wartości są listami ich indeksów w macierzyx@
zindeksuj oryginalną macierz. wynikiem jest ponownie słownik z wierszami jako kluczami. wartości są wieloma kopiami odpowiedniego klucza+//'
sumuj do momentu uzyskania zbieżności (działa tylko na wartości; klucze pozostają bez zmian)a:
Przypisać doa
|/
maksimum (wartości)a=|/a
słownik między wierszami, którego wiersze mają największy udział&
„gdzie”, tzn. które klucze odpowiadają wartości 1źródło
Japt,
1110 bajtówUruchom to online
źródło
05AB1E ,
109 bajtówWypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
Gaia , 10 bajtów
Wypróbuj online!
Ponieważ Gaia nie akceptuje list bardzo łatwo poprzez dane wejściowe, jest to funkcja, która akceptuje listę od góry od góry stosu i pozostawia wynik na wierzchu (jako maski posortowanego porządku).
źródło
J , 16 bajtów
Wypróbuj online!
Czasownik monadyczny, który daje wynik logiczny w kolejności pojawiania się.
Jak to działa
źródło