public int removeDuplicates(int[] A) {
if (A == null || A.length == 0) {
return 0;
}
int size = 0;
for (int i = 1; i < A.length; i++) {
if (A[i] == A[size] && size > 0 && A[size] == A[size - 1]) {
continue;
}
A[++size] = A[i];
}
return size + 1;
}
重点在于:
if (A[i] == A[size] && size > 0 && A[size] == A[size - 1]) {
continue;
}
当 下一个(A[i]) == 当前(A[size])时,判断一下如果这个值已经出现过两次了,就跳过
否则,都复制过来