自学内容网 自学内容网

刷题之删除有序数组中的重复项(leetcode)

删除有序数组中的重复项

在这里插入图片描述
在这里插入图片描述

这题简单题,双指针,一个指针记录未重复的数的个数,另一个记录遍历的位置。

以下是简单模拟,可以优化:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int l=0;
        int r=1;
        if(nums.size()<=1)
            return nums.size();
        while(r<nums.size())
        {
            if(nums[l]==nums[r])
            {
                r++;
            }else{
                l++;
                nums[l]=nums[r];
                r++;
            }
        }
        return l+1;
    }
};


//优化:
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int l=0;
        int r=1;
        if(nums.size()<=1)
            return nums.size();
        while(r<nums.size())
        {
            if(nums[l]!=nums[r])
            {
                l++;
                nums[l]=nums[r];
            }
            r++;
        }
        return l+1;
    }
};

原文地址:https://blog.csdn.net/qq_42538417/article/details/140225779

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!