public class Solution {
public int removeDuplicates(int[] nums) {
int count=0;
for(int i=1;i<nums.length;i++){
if(nums[i]!=nums[count]){
count++;
nums[count]=nums[i];
}
}
if(nums.length==0)
return 0;
return count+1;
}
}
和上一题有些相似 都用到了two pointer。即一个数组不另分配其他的内存 直接修改index
有几个弯需要避让:
1. for循环 i从1开始,因为count最先为0,所以要由nums[0]与后面的数比较 故从1开始;
2. 数组长度判断!!
3. 返回值:因为count是从0开始的,返回的数组长度应该是count+1而不是count。
继续加油