"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Leetcode — Entrevista principal –. Elemento Majoritário

Leetcode — Entrevista principal –. Elemento Majoritário

Publicado em 2024-11-25
Navegar:121

Leetcode — Top Interview –. Majority Element

É um problema fácil com a descrição sendo:

Dado um array nums de tamanho n, retorne o elemento majoritário.

O elemento majoritário é o elemento que aparece mais de ⌊n / 2⌋ vezes. Você pode assumir que o elemento majoritário sempre existe na matriz.

Exemplo 1:

Entrada: nums = [3,2,3]
Saída: 3

Exemplo 2:

Entrada: nums = [2,2,1,1,1,2,2]
Saída: 2

Restrições:

n == nums.comprimento
1 -109

À primeira vista você pensaria em fazer um mapa e depois reunir aquele que mais aparece.

Pensando bem, se você pudesse classificar e obter aquele que aparece mais, isso serviria.

E com isso existe um jeito ainda mais simples. Se você ler atentamente a descrição, entenderá que um elemento majoritário é aquele que aparece em mais da metade do array.

Com isso em mente, se você classificasse e pegasse o índice do meio, isso resolveria o problema:

class Solution {
    public int majorityElement(int[] nums) {

        // sort
        Arrays.sort(nums);

        // if by majority element it means that appears more than half of nums size
        // then picking the middle element would be the one that's a majority element
        return nums[nums.length / 2];
    }
}

Tempo de execução: 4 ms, mais rápido que 54,53% dos envios online de Java para Majority Element.

Uso de memória: 53,5 MB, menos de 9,23% dos envios online de Java para Majority Element.

É isso! Se houver mais alguma coisa para discutir, sinta-se à vontade para deixar um comentário. Se eu perdi alguma coisa, avise-me para que eu possa atualizar adequadamente.

Até a próxima postagem! :)

Declaração de lançamento Este artigo é reproduzido em: https://dev.to/bendlmp/leetcode-top-interview-150-169-majority-element-4a1d?1 Se houver alguma infração, entre em contato com [email protected] para excluí-lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3