Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array A = [1,1,1,2,2,3]
,
Your function should return length = 5
, and A is now [1,1,2,2,3]
.
java
public class Solution {
/**
* @param A: a array of integers
* @return : return an integer
*/
public int removeDuplicates(int[] nums) {
// write your code here
if (nums == null || nums.length == 0) {
return 0;
}
int index = 0;
int count = 0;
for (int i = 1; i < nums.length; i++) {
if (nums[index] == nums[i]) {
if (count < 1) {
nums[++index] = nums[i];
count++;
}
} else {
nums[++index] = nums[i];
count = 0;
}
}
return index + 1;
}
}
python
class Solution:
"""
@param: nums: An ineger array
@return: An integer
"""
def removeDuplicates(self, nums):
# write your code here
if nums is None or len(nums) == 0:
return 0
index, count = 0, 0
for i in range(1, len(nums)):
if nums[index] == nums[i]:
if count < 1:
index += 1
nums[index] = nums[i]
count += 1
else:
index += 1
nums[index] = nums[i]
count = 0
return index + 1