删除有序数组中的重复项
这题简单题,双指针,一个指针记录未重复的数的个数,另一个记录遍历的位置。
以下是简单模拟,可以优化:
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;
}
};