LeetCode-Python-1399. Conte o número do maior grupo (método de simulação + tabela de hash)

 

1399. Conte o número de maiores grupos

Dificuldade simples 4

Dê um número inteiro  n . Primeiro, encontre a  soma dos dígitos na representação decimal de cada número inteiro de (  1 para  nadicionar os dígitos em cada dígito) e, em seguida, coloque os dígitos e os dígitos equivalentes no mesmo grupo.

Por favor, conte o número de números em cada grupo e retorne o número de grupos com o maior número de números em paralelo.

 

Exemplo 1:

Entrada: n = 13
 Saída: 4
 Explicação: Existem 9 grupos no total.Após a soma dos números de 1 a 13, os grupos são: 
[1,10], [2,11], [3,12], [4 , 13], [5], [6], [7], [8], [9]. No total, existem 4 grupos com mais números em paralelo.

Exemplo 2:

Entrada: n = 2
 Saída: 2
 Explicação: Existem 2 grupos de tamanho 1 [1], [2].

Exemplo 3:

Entrada: n = 15
 Saída: 6

Exemplo 4:

Entrada: n = 24
 Saída: 5

 

Dicas:

  • 1 <= n <= 10^4

Idéias:

O método de simulação conta diretamente a soma dos dígitos de cada número em [1, n] e o coloca no dicionário l, key é a soma dos dígitos e val é o número de ocorrências da soma dos dígitos.

Em seguida, determine quantos do maior número de dígitos paralelos em l é.

Complexidade temporal: O (NlogN)

Complexidade do espaço: O (logN)

class Solution(object):
    def countLargestGroup(self, n):
        """
        :type n: int
        :rtype: int
        """
        from collections import defaultdict
        l = defaultdict(int)   

        def helper(num):
            # 计算num数位之和,eg:输入34, 返回3 + 4 = 7
            s = 0
            while num:
                num, tmp = divmod(num, 10)
                s += tmp
            return s

        for num in range(1, n + 1):
            l[helper(num)] += 1
        
        mmax = max(l.values())
        return sum([1 for item in l.values() if item == mmax])

 

Publicado 734 artigos originais · 121 elogios · 210.000 visualizações

Acho que você gosta

Origin blog.csdn.net/qq_32424059/article/details/105549523
Recomendado
Clasificación