#26. Remove Duplicates from Sorted Array

Arrays • Fácil

#two-pointers#O(n)-tempo#O(1)-espaço#in-place

Prévia da Animação - Two Pointers

nums = [1, 1, 2]

1
unique
1
read
2
Clique para iniciar (Two Pointers)
Remove Duplicates from Sorted Array - Two Pointers
Enunciado do Problema

Dado um array de inteiros nums ordenado em ordem não-decrescente, remova os duplicados in-place de modo que cada elemento único apareça apenas uma vez. A ordem relativa dos elementos deve ser mantida.

Retorne k após colocar os primeiros k elementos únicos nas primeiras k posições do array nums. Não importa o que você deixar além das primeiras k posições.

Não aloque espaço extra para outro array. Você deve fazer isso modificando o array de entrada in-place com memória extra O(1).

Exemplos

Exemplo 1

Entrada nums = [1,1,2]
Saída 2, nums = [1,2,_]
Explicação Sua função deve retornar k = 2, com os dois primeiros elementos de nums sendo 1 e 2. Não importa o que você deixar além do k retornado.

Exemplo 2

Entrada nums = [0,0,1,1,1,2,2,3,3,4]
Saída 5, nums = [0,1,2,3,4,_,_,_,_,_]
Explicação Sua função deve retornar k = 5, com os cinco primeiros elementos de nums sendo 0, 1, 2, 3 e 4. Não importa o que você deixar além do k retornado.
Restrições
  • 1 ≤ nums.length ≤ 3 * 10⁴
  • -100 ≤ nums[i] ≤ 100
  • nums está ordenado em ordem não-decrescente