删除数组中的重复项

发布时间:2024年01月05日

给你一个有序数组?nums?,请你?原地?删除重复出现的元素,使得出现次数超过两次的元素只出现两次?,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在?原地?修改输入数组?并在使用 O(1) 额外空间的条件下完成。


class Solution {

public:

? ? int removeDuplicates(vector<int>& nums) {



? ? ? ? if (nums.size() < 1 || nums.size()>3 * 10000)

? ? ? ? {

? ? ? ? ? ? cout << " nums length beyond allowed range " << endl;

? ? ? ? }

? ? ? ? if(nums.size() < 2 )

? ? ? ? {

? ? ? ? ? ? return nums.size();

? ? ? ? }



? ? ? ? for (auto iter = nums.begin(); iter != nums.end()-2;)

? ? ? ? {

? ? ? ? ? ? if (*iter == *(iter +2))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? iter = nums.erase(iter);

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? iter++;

? ? ? ? ? ? }



? ? ? ? }



? ? ? ? return nums.size();

? ? }

};

文章来源:https://blog.csdn.net/qq_19272431/article/details/135412191
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。