LeetCode 0026

来源:互联网 发布:直通车 淘宝客 编辑:程序博客网 时间:2024/06/01 10:20

26.Remove Duplicates from Sorted Array

原题链接

我的思路:

只需要知道前一个上一个不一样的元素是什么,就可以判断下一个元素是否已经出现过,如果按照我的做法,注意要判断特殊情况:

  1. nums是空的
  2. 对于第0号元素,它上一个不一样的元素是什么?显然我们只要找一个不等于0号元素的就好了。

由于我对返回值的理解不够透彻,对函数副作用的理解也不够,因此我的代码不够精妙,于是贴上一份最快答案的解法:

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

这里将返回值与nums结合,就得到了想要的结果,而我是直接删除的,显然没有这个必要。