问题描述:对升序数组 nums ,原地删除重复元素,返回删除后数组长度。元素相对顺序保持一致 。
public int removeDuplicates(int[] nums) {
//边界条件判断
if (nums == null || nums.length == 0)
return 0;
int left = 0;
//right是我们遍历数组的指针,left是去重数组的末尾指针
for (int right = 1; right < nums.length; right++)
if (nums[left] != nums[right])
//没重复,则left右移新增一个未重复值(就是right指向的值)
nums[++left] = nums[right];
return ++left;//因为left是指向末尾的指针,所以长度就是left+1;
}