题目:
跟进“删除重复数字”:
如果可以允许出现两次重复将如何处理?
样例
给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]
解题:
与上一题方法很类似,这里保存相同元素长度小于2的保存在原来的数组中
很巧妙
Java程序:
public class Solution { /** * @param A: a array of integers * @return : return an integer */ public int removeDuplicates(int[] nums) { // write your code here int i = 0,j; int numsLen = nums.length; int cur=0; while(i<numsLen){ for( j=i;j<numsLen;j++){ if(nums[i]!=nums[j]) break; if((j-i+1)<=2) // 只记录长度小于等于2 的下标对应的元素 nums[cur++] = nums[i]; } i = j;// 下一个不相同元素开始 } return cur; } }