Menu
CoddyTech

Summary Ranges

Você recebe um array ordenado nums de números inteiros distintos. Divida-o no menor número possível de intervalos de números inteiros consecutivos, de modo que cada valor pertença a exatamente um intervalo. Escreva um intervalo a..b como o texto "a->b", ou como "a" quando ele contiver um único valor. Retorne os intervalos em ordem crescente.

Função

summaryRanges(nums: integer-array) → string-array
numsinteger-array
o array ordenado de números inteiros distintos
Retornastring-array
os intervalos como texto, dos menores valores aos maiores

Restrições

  • 1 ≤ nums.length ≤ 5000
  • -109 ≤ nums[i] ≤ 109
  • nums está ordenado em ordem crescente e não tem duplicatas.

Exemplos

Entrada
nums = [0, 1, 2, 5, 6, 9]
Saída
["0->2", "5->6", "9"]
Explicação
0, 1, 2 vêm em sequência, então formam "0->2". O salto de 2 para 5 inicia um novo intervalo, "5->6", e 9 fica sozinho como "9".

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Suponha que nums pudesse conter duplicatas, como [1, 2, 2, 3]. O que você mudaria para que ainda imprimisse "1->3"?

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

Caso 1

Caso 2

Entrada

nums = [0, 1, 2, 5, 6, 9]

Esperado

["0->2", "5->6", "9"]