Zainspirowany tym pytaniem i dopracowany przez Luisa Mendo .
Wyzwanie
Biorąc pod uwagę macierz 2D liczb całkowitych, każdy wiersz ma maksymalną wartość. Jeden lub więcej elementów każdego rzędu będzie równe maksymalnej wartości ich odpowiedniego rzędu. Twoim celem jest określenie, które kolumny zawierają najwięcej wpisów, które są równe maksymalnej wartości odpowiedniego wiersza, a także liczbie maksymalnych wierszy znalezionych w tych kolumnach.
Wejście
- Dane wejściowe będą niepustą macierzą
MxN(M> 0 iN> 0) w dowolnej formie, która jest dobrze dopasowana do wybranego języka.
Wynik
- Twój program powinien zwrócić indeks każdej kolumny zawierający maksymalną liczbę maksymalnych wierszy (jako osobne wartości lub listę). Można zastosować indeksowanie 0 lub 1 (określ w opisie).
- Twój program powinien również zwrócić liczbę maksimów, które były obecne w tych kolumnach (pojedyncza liczba).
- Kolejność / format danych wyjściowych jest elastyczny, ale należy to wyjaśnić w tekście towarzyszącym odpowiedzi.
Dodatkowe informacje
- Wszystkie wpisy w macierzy wejściowej będą dodatnimi liczbami całkowitymi.
- Jeśli maksymalna wartość wiersza jest współdzielona przez wiele elementów w tym wierszu, wszystkie wystąpienia tej wartości liczą się do sumy ich kolumn.
- Jeśli wiele kolumn zawiera tę samą liczbę maksimów, powinieneś zwrócić listę wszystkich kolumn, które miały tę liczbę maksimów.
Przykład
Rozważ wejście
7 93
69 35
77 30
Wiersz 1 ma maksimum 93, co występuje tylko raz, a mianowicie w kolumnie 2. Wiersz 2: występuje w kolumnie 1. Wiersz 3: także w kolumnie 1. Zatem kolumna zwycięzcy to 1, z 2 maksimami. Tak więc wynik będzie [1] [2]. Jeśli zmienimy wejście na
7 93
69 35
77 77
wyjście będzie [1 2] [2], ponieważ obie kolumny mają 2 maksima.
Przypadki testowe
input => output ( [1-based index array], [nMaxima] )
----------------------------------------------
7 93
69 35 => [1], [2]
77 30
7 93
69 35 => [1 2], [2]
77 77
1 2 3 4 => [4], [2]
5 6 7 8
16 2 3 13
5 11 10 8 => [1 2 4], [1]
9 7 6 12
1 1 1 1 => [1 2 3 4], [1]
25 6 13 25 => [1 4], [1]
1
2
3 => [1], [4]
4
100 => [1], [1]
Punktacja
To jest code-golf , wygrywa najkrótszy kod w bajtach. Tiebreaker przechodzi do wcześniejszej odpowiedzi.
Tabela liderów
Poniżej znajduje się fragment stosu do analizy wszystkich wpisów.