Menu
CoddyTech

Summary Ranges

Ricevi un array ordinato nums di numeri interi distinti. Suddividilo nel minor numero possibile di intervalli di numeri interi consecutivi, in modo che ogni valore appartenga esattamente a un intervallo. Scrivi un intervallo a..b come testo "a->b", oppure come "a" quando contiene un solo valore. Restituisci gli intervalli in ordine crescente.

Funzione

summaryRanges(nums: integer-array) → string-array
numsinteger-array
l'array ordinato di numeri interi distinti
Restituiscestring-array
gli intervalli come testo, dai valori più piccoli ai più grandi

Vincoli

  • 1 ≤ nums.length ≤ 5000
  • -109 ≤ nums[i] ≤ 109
  • nums è ordinato in ordine crescente e non contiene duplicati.

Esempi

Input
nums = [0, 1, 2, 5, 6, 9]
Output
["0->2", "5->6", "9"]
Spiegazione
0, 1, 2 sono consecutivi, quindi formano "0->2". Il salto da 2 a 5 inizia un nuovo intervallo, "5->6", e 9 rimane da solo come "9".

lock icon+16 test nascosti all’invio

challenge icon

Per approfondire

Supponiamo che nums possa contenere duplicati, come [1, 2, 2, 3]. Cosa cambieresti affinché stampi comunque "1->3"?

Ripristina il codice
def summaryRanges(nums):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Input

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

Atteso

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