Given a sorted integer array, remove duplicate elements. For each group of elements with the same value do not keep any of them. Do this in-place, using the left side of the original array and and maintain the relative order of the elements of the array. Return the array after deduplication.
Assumptions
- The given array is not null
Examples
-
{1, 2, 2, 3, 3, 3} → {1}
public class Solution { public int[] dedup(int[] array) { // Write your solution here. int slow = 0; int begin = 0; int i = 0; while(i < array.length) { begin = i; while (i < array.length && array[begin] == array[i]) { i += 1; } if (i - begin == 1) { array[slow++] = array[begin]; } } return Arrays.copyOf(array, slow); } }