26. 删除有序数组中的重复项
题目在文末
思路
题目思路
数组题目老规矩,原地操作,数组有序
直接双指针
双指针
如果front与前一个元素相同,则front移动。
如果不同,则front与after交换,并同时移动。
核心思想就是after负责看管不同的元素,如果front扫描到前一个和自己相同,那么front将继续向前扫描,直到遇到不同的元素,就与after交换。最终返回after
class Solution {
public int removeDuplicates(int[] nums) {
int front = 1;
int after = 1;
for (; front < nums.length; front++) {
if (nums[front] != nums[front-1]) {
nums[after] = nums[front];
after++;
}
}
return after;
}
}