简单题,但也思考了一会。就是pos标志下一个要写入的位置,而current标志下一个可以写入的内容。
public class Solution { public int removeDuplicates(int[] A) { if (A.length == 0 || A.length == 1) return A.length; int pos = 0; int current = 0; boolean encounted = false; while (current < A.length) { if (current == 0 || A[current] != A[current-1]) { A[pos] = A[current]; pos++; current++; encounted = false; } else // A[current] == A[current-1] { if (!encounted) { A[pos] = A[current]; pos++; current++; encounted = true; } else { current++; } } } return pos; } }