题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
注意事项:
[1,1,2] # 2,[1,2]
[0,0,1,1,1,2,2,3,3,4] # 5,[0,1,2,3,4]
要求:
1、令 p=1,q=1。p 为头指针,可记录元素个数,q 为尾指针,遍历完退出循环。
2、当 nums[q]==nums[q-1],说明重复,q++直到不重复元素出现
3、将新元素赋给 p 指向的位置,p++
4、结束循环后 p 代表当前元素个数,返回 p
class Solution {
public:
int removeDuplicates(vector& nums){
int n=nums.size();
if(n==0) return 0;
int p=1,q=1;
while(q