采用双指针方法,
对空数组和只有一个元素的数组进行讨论。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.empty())
{
return 0;
}
if (nums.size() == 1)
{
return 1;
}
int k = 1, temp = nums[0];
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] == temp)
{
continue;
}
else
{
nums[k++] = nums[i];
temp = nums[i];
}
}
return k;
}
};
测试代码:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int removeDuplicates(vector<int>& nums)
{
if (nums.empty())
{
return 0;
}
if (nums.size() == 1)
{
return 1;
}
int k = 1, temp = nums[0];
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] == temp)
{
continue;
}
else
{
nums[k++] = nums[i];
temp = nums[i];
}
for (int i = 0; i < nums.size(); i++)
{
cout << nums[i];
}
cout << "\n" ;
}
return k;
}
int main()
{
vector<int> nums = { 1, 1, 2, };
int n = removeDuplicates(nums);
cout << n;
while (1)
{
getchar();
}
return 0;
}