删除有序数组中的元素

两道题都是双指针做法,不要使用额外的数组空间,须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

1. 删除有序数组中的重复项

原题链接

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size()==0)  return 0;
       int i=0;
       for(int j=1;j<nums.size();j++)
       {
           if(nums[j]!=nums[i])
                nums[++i]=nums[j];
       }
       return i+1;
    }
};

2. 移除元素

原题链接

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
    int i=0;
    for(int j=0;j<nums.size();j++)
        if(nums[j]!=val)    nums[i++]=nums[j];
    return i;
    }
};
posted @ 2021-04-17 17:26  Tsukinousag1  阅读(118)  评论(0)    收藏  举报