题意:去掉重复的元素,并返回新的长度。
解题思路:题目要求不能申请新的数组空间,而是在原来的数组中修改。也就是说我们需要覆盖重复的元素。修改之后会有多于的部分在数组末尾,可以使用容器中的erase()方法去除。
核心代码附上:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int count=0;
int n=nums.size();
for(int i=1;i<n;i++)
{
if(nums[i]==nums[i-1])
{
count++;
}
else
{
nums[i-count]=nums[i];
}
}
nums.erase(nums.begin()+n-count,nums.end());
return n-count;
}
};