题目详情:点此处
题解:
首先需要注意这是一个有序数组
解决方法:双指针法
先判断数组的长度,如果小于2的话,即可返回本身;
大于2的情况,则需要判断快指针和慢指针是否相等,不等则可将当前值赋给慢指针,否则剔除快指针数据。
class Solution {
public int removeDuplicates(int[] nums) {
int n=nums.length;
if(n<2) return n;
int ans=0;
for(int i=1;i<n;i++){
if(nums[i]!=nums[ans])
nums[++ans]=nums[i];
}
return ++ans;
}
}