Menu
CoddyTech

Longest Consecutive Sequence

MédioHashingpython iconjava iconcpp iconc iconjs icon+10

Você recebe um array de números inteiros nums em nenhuma ordem específica. Uma sequência consecutiva é um grupo de valores x, x+1, x+2 e assim por diante, cada um aparecendo em algum lugar de nums. Retorne o comprimento da sequência consecutiva mais longa. Um valor que aparece mais de uma vez conta apenas uma vez.

Função

longestConsecutive(nums: integer-array) → integer
numsinteger-array
os números inteiros, em qualquer ordem, com repetições permitidas
Retornainteger
o comprimento da maior sequência de valores consecutivos presente em nums

Restrições

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • Os valores podem se repetir. As posições no array não importam, apenas quais valores estão presentes.

Exemplos

Entrada
nums = [40, 4, 39, 1, 3, 2, 41]
Saída
4
Explicação
1, 2, 3 e 4 estão todos presentes, uma sequência de 4, embora estejam espalhados pelo array. A outra sequência, de 39 a 41, tem apenas 3 valores.

lock icon+17 testes ocultos ao enviar

challenge icon

Para ir além

Suponha que os valores cheguem um de cada vez e que, após cada um, você precise informar a sequência mais longa até então. Você consegue manter a resposta atualizada em tempo médio O(1) por valor?

Redefinir código
def longestConsecutive(nums):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

nums = [40, 4, 39, 1, 3, 2, 41]

Esperado

4