Inspirado por esta pergunta e refinado por Luis Mendo .
Desafio
Dada uma matriz 2D de números inteiros, cada linha tem um valor máximo. Um ou mais elementos de cada linha serão iguais ao valor máximo de suas respectivas linhas. Seu objetivo é determinar quais colunas contêm mais entradas iguais ao valor máximo de suas respectivas linhas, bem como o número máximo de linhas encontrado nessas colunas.
Entrada
- A entrada será uma matriz
M
x não vaziaN
(M
> 0 eN
> 0), em qualquer forma que seja adequada ao seu idioma de escolha.
Resultado
- Seu programa deve retornar o índice de cada coluna que contém o número máximo de máximos em linhas (como valores separados ou uma lista). A indexação baseada em 0 ou 1 pode ser usada (especifique na sua descrição).
- Seu programa também deve retornar o número de máximos presentes nessas colunas (um único número).
- A ordem / formato da saída é flexível, mas deve ser explicada no texto que acompanha sua resposta.
informação adicional
- Todas as entradas na matriz de entrada serão números inteiros positivos.
- Se o valor máximo de uma linha for compartilhado por vários elementos nessa linha, todas as ocorrências desse valor serão contabilizadas no total de suas colunas.
- Se várias colunas contiverem o mesmo número de máximos, você deverá retornar uma lista de todas as colunas que possuam esse número de máximos.
Um exemplo
Considere entrada
7 93
69 35
77 30
A linha 1 possui no máximo 93, que ocorre apenas uma vez, ou seja, na coluna 2. Linha 2: ocorre na coluna 1. Linha 3: também na coluna 1. Portanto, a coluna vencedora é 1, com 2 máximos. Assim, a saída será [1] [2]
. Se mudarmos a entrada para
7 93
69 35
77 77
a saída será [1 2] [2]
, porque as duas colunas têm 2 máximos.
Casos de teste
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]
Pontuação
Este é o código-golfe , o código mais curto em bytes vence. O desempatador vai para a resposta anterior.
Entre os melhores
Abaixo está um trecho de pilha para analisar todas as entradas.