Teste de Programação - Codility - Dominator [closed]

Acabei de ter um problema de codificação que me causa dificuldades e ainda estou tentando descobrir como as restrições de complexidade de espaço e tempo poderiam ter sido atendidas.

O problema é o seguinte: Um membro dominante na matriz é aquele que ocupa mais de metade das posições na matriz, por exemplo:

{3, 67, 23, 67, 67}

67 é um membro dominante porque aparece na matriz em 3/5 (> 50%) posições.

Agora, espera-se que você forneça um método que aceite uma matriz e retorne um índice do membro dominante se existir um e -1 se não houver nenhum.

Fácil, certo? Bem, eu poderia ter resolvido o problema com facilidade se não fosse pelas seguintes restrições:

A complexidade esperada do tempo é O (n)A complexidade esperada do espaço é O (1)

Eu posso ver como você poderia resolver isso para O (n) tempo com complexidades de espaço O (n), assim como O (n ^ 2) tempo com complexidades de espaço O (1), mas nenhuma que atenda ao tempo O (n) e O (1) espaço.

Eu realmente aprecio ver uma solução para este problema. Não se preocupe, o prazo passou algumas horas atrás (eu só tinha 30 minutos), então não estou tentando enganar. Obrigado.

questionAnswers(24)

yourAnswerToTheQuestion