思路:
- 因为不确定数组的实际大小,应判断数组是否有重复项。如果没有则直接返回当前数组大小。
2.要删除数组中的重复项,就需要找出数组到底有多少个不同的元素。所以在确定第一个数的前提下,按顺序提取元素与第一个数比较,就可以找到第二个非重复项。以此类推即可找到第n个非重复项。
3.接下来只要按顺序将第二个一直到第n个非重复项依次排在第一个已知数后,即可完成任务。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()<2)
return nums.size();
int k=0;
int a=nums[nums.size()-1];
for(int i=1;nums[i]!=a;i++)
if(nums[i]>nums[k])
nums[++k]=nums[i];
if(nums[k]!=a)
nums[++k]=a;
return ++k;
}
};