原题链接:Leecode 26. 删除有序数组中的重复项
解法一:使用hash判断一个值是否出现过
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int res=0;
unordered_map<int,int> m;
for(int i=0;i<nums.size();i++)
{
if(m[nums[i]]==0)
{
nums[res++]=nums[i];
m[nums[i]]=1;
}
}
return res;
}
};
解法二:双指针判断
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int res=0;
for(int i=0;i<nums.size();i++)
{
if(nums[i]!=nums[res])
nums[++res]=nums[i];
}
return res+1;
}
};