刷题之删除有序数组中的重复项(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)!