[Algo] 117. Array Deduplication III

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);
  }
}

猜你喜欢

转载自www.cnblogs.com/xuanlu/p/12355346.html