26.删除有序数组中的重复项
要求原地删除,不能有额外数组。
双指针法:
public int removeDuplicates(int[] nums) { int n = nums.length; if (n == 0) { return 0; } int fast = 1; int slow = 1; while (fast<n) { if(nums[fast-1] != nums[fast]) { nums[slow] = nums[fast]; slow++; } fast++; } return slow; }
想了一下为什么用双指针,因为数组需要一个指针(fast)来进行扫描数组的元素,而且需要知道下一个元素的位置在哪(slow)。