Dada uma matriz não vazia de números inteiros não negativos, responda quais linhas exclusivas contribuem mais para a soma total de elementos na matriz.
Responda por qualquer indicação razoável, por exemplo, uma máscara da ordem de aparência de linhas exclusiva (ou ordem de classificação), ou índices (com base em zero ou um) daquelas, ou uma submatriz que consiste nas linhas (em qualquer ordem) ou em alguma tipo de construção de dicionário ... - mas explique!
Exemplos
[[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]
:
As linhas originais são [1,2,3]
, [2,0,4]
e [6,3,0]
cada um, respectivamente, contribuindo 6, 6 e 9 de cada vez que eles ocorrem. No entanto, elas ocorrem uma vez, três vezes e duas vezes, respectivamente, de modo que todas as suas respectivas ocorrências contribuem com 6, 18 e 18 para o total (42); portanto, as duas últimas linhas são as que mais contribuem. Respostas válidas são, portanto:
[false,true,true]
mascarar na aparência / ordem de classificação ou
[1,2]
/ [2,3]
zero / índices baseados em uma das
[[2,0,4],[6,3,0]]
linhas acima ou reais
⋮
[[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]]
[false,false,true]
(ordem de aparência) / [false,true,false]
(ordem de classificação)
[2]
/ [3]
(ordem de aparência) / [1]
/ [2]
(ordem de classificação)
[[2,3]]
⋮
fonte
Pitão , 9 bytes
-1 graças a FryAmTheEggman!
Experimente online!
fonte
k
não é necessária. Também.M*sZ/QZ{
parece ser uma solução do mesmo comprimento então.R , 64 bytes
Experimente online!
Retorna um vetor booleano com TRUE / FALSE em ordem de classificação (lexicográfico).
As linhas exclusivas são mostradas como nomes de vetores, portanto é fácil identificar as que mais contribuem.
fonte
Python 3 ,
153145129 bytes-8 bytes graças a @Mr. Xcoder!
Experimente online!
fonte
Haskell, 60 bytes
Retorna uma lista das linhas.
fonte
Carvão , 25 bytes
Experimente online! Link é a versão detalhada do código. O formato de saída padrão é cada elemento da linha em sua própria linha e as linhas são espaçadas duas vezes. Explicação:
fonte
Mathematica, 48 bytes
ou
onde (por exemplo)
fonte
SortBy[Gather@m,Total@*Flatten][[-1,1]]
TakeLargestBy[Gather[m], Total[#, 2] &, 1][[1, 1]] /@ m
JavaScript (ES6), 88 bytes
Gera uma matriz de valores booleanos em ordem de aparência.
Experimente online!
fonte
Groovy , 76 bytes
Experimente online!
Retorna como booleanos na ordem de classificação
fonte
Scala , 63 bytes
Experimente online!
Retorna booleanos em ordem de aparência
fonte
APL (Dyalog Unicode) , 12 bytes
Experimente online!
-2 graças a Adám . -1 graças ao formato de saída alternativo.
fonte
Wolfram Language (Mathematica) , 42 bytes
Experimente online!
fonte
Python 2 ,
8178 bytesExperimente online!
3 bytes de thx para Black Owl Kai .
Dada uma coleção de tuplas, a saída é um conjunto dessas tuplas com a propriedade máxima desejada.
fonte
Japonês ,
1311 bytes-2 bytes de @Shaggy
Experimente online!
fonte
C # (compilador interativo do Visual C #) , 126 bytes
Experimente online!
A maior parte desse código é gasta retirando todos os valores duplicados, pois o comparador padrão para listas não compara os valores dentro das listas. Isso significa que eu não posso usar
Distinct()
,GroupBy()
ouContains
para filtrar a lista.fonte
K (ngn / k) , 17 bytes
Experimente online!
{
}
função com argumentox
=x
group - forma um dicionário no qual as chaves são linhas e os valores são listas de seus índices na matrizx@
indexe a matriz original com isso. o resultado é novamente um dicionário com as linhas como chaves. os valores são várias cópias da chave correspondente+//'
soma até convergência cada (atua apenas nos valores; as chaves permanecem como estão)a:
atribuir aa
|/
máximo (dos valores)a=|/a
um dicionário linha a booleano cujas linhas contribuem mais&
"where", ou seja, quais chaves correspondem aos valores de 1fonte
Japonês,
1110 bytesExecute on-line
fonte
05AB1E ,
109 bytesExperimente online ou verifique todos os casos de teste .
Explicação:
fonte
Gaia , 10 bytes
Experimente online!
Como o Gaia não aceita listas através de entradas com muita facilidade, esta é uma função que aceita uma lista do topo da pilha e deixa o resultado no topo (como máscaras de ordem classificada).
fonte
J , 16 bytes
Experimente online!
Um verbo monádico que fornece o resultado booleano em ordem de aparência.
Como funciona
fonte