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].
1. 引入个变量保存上次重复的值
2. for循环从2开始
public class Solution {
public int removeDuplicates(int[] A) {
if (A.length <= 2) return A.length;
int dup = A[0];
int size = 1;
for (int i = 2; i < A.length; i++) {
if (A[size] != A[i]) {
A[++size] = A[i];
}else {
if (A[i] != dup) {
A[++size] = A[i];
dup = A[i];
}
}
}
return size+1;
}
}

本文探讨了在已排序数组中去除重复元素的算法改进,特别关注最多允许两个相同元素相邻的情况。通过引入变量跟踪上一次重复元素并进行优化循环,实现了在保持数组有序的同时,限制重复元素出现次数至两次。
1022

被折叠的 条评论
为什么被折叠?



