给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
1、数据是有序的,说明相同的元素总在一起 2、不要使用额外的数组空间,这个就限制了使用treeSet的方法
使用双指针,剔除相同的元素
class Solution { public int removeDuplicates(int[] nums) { if(nums == null || nums.length == 0){ return 0; } int a = 0; for(int b=1;b<nums.length;b++){ if(nums[a] != nums[b]){ a++; nums[a]=nums[b]; } } return a+1; } }https://mp.weixin.qq.com/s/JcsBahMXtwX2I7QkO6OTJA