LeetCode

LeetCode-26 删除排序数组中的重复项

nkul · 9月30日 · 2020年 · 25次已读

注意本题有两个要求:

1、原地算法,即不能开辟新数组

2、传入的值是整数,返回的是数组

3、因此这种类型的题,都是将合法的数据移到前面,非法的数据移到后面,返回的是合法的最后一个索引!!!

class Solution {
public:
    int removeDuplicates(vector& nums) {
        int k = 0;
        /*
            [0,0,1,1,1,2,2,3,3,4]
            双指针,i遍历,k存第一次出现的数据,什么数是第一次出现?:nums[i]!=nums[i-1],nums[i]就是第一次出现
        */
        for(int i = 0;i < nums.size(); i++){
            if(!i || nums[i]!=nums[i-1]){
                nums[k++] = nums[i];
            }
        }
        return k;
    }
};


0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!