26. 删除有序数组中的重复项
题目要求在原数组上进行操作,于是又想到了双指针迭代的办法,维护一个快指针一个慢指针(参考283. 移动零),
每次快指针遇到与慢指针不同的元素则进行覆盖慢指针指向的下一元素(这里跟移动零有一点区别,因为这里是找
不通的元素,当前元素是不覆盖的)。时间O(n),空间O(1)
public int removeDuplicates(int[] nums) { if (nums.length<2) return nums.length; int index=0; for (int num:nums){ if (num!=nums[index]){
// 这里是++index,因为是找不同,当前元素不用覆盖 nums[++index]=num; } } return index+1; }
争取早日不再是一只菜鸡