java数组删除重复元素_删除排序数组的重复项||(LC80)

题目:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。

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

java数组删除重复元素_删除排序数组的重复项||(LC80)_第1张图片

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

代码如下:

#include

#include

using namespace std;

class Solution {

public:

int removeDuplicates(vector& nums) {

int len=nums.size();

int t1=0,t2=1;

while(t2

{

if(nums[t1]!=nums[t2])

{

t1++;

t2++;

}

else if(nums[t1]==nums[t2])

{

t2++;

if(t2

{

nums.erase(nums.begin()+t1);

len--;

t2--;

}

else

{

t1++;

}

}

}

return nums.size();

}

};

int main()

{

int b[2]={1,2};

vector a(begin(b),end(b));

Solution s=Solution();

cout<

cout<<"====="<

for(int i=0;i

cout<

return 0;

}

结果:

java数组删除重复元素_删除排序数组的重复项||(LC80)_第2张图片

你可能感兴趣的:(java数组删除重复元素)