[LintCode]Remove Duplicates from Sorted Array II
public class Solution {
/**
* @param A: a array of integers
* @return : return an integer
*/
public int removeDuplicates(int[] nums) {
// 2015-4-12 待改进
if (nums == null || nums.length == 0) {
return 0;
}
if (nums.length == 1) {
return 1;
}
int index = 0;
boolean secondSame = true; //关键:与第一题的区别
for (int i = 1; i < nums.length; i++) {
if (nums[index] != nums[i]) {
secondSame = true;
index++;
nums[index] = nums[i];
} else if (secondSame) {
secondSame = false;
index++;
nums[index] = nums[i];
}
}
return index + 1;
}
}