算法二:删除排序数组中的重复项(C++)

97 阅读1分钟

题目:

给一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。

双指针:时间复杂度O(n),空间复杂度O(1)

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