这个题很简单,就是让你把一个数组中,(已排好序的数组),重复的删掉,然后返回这个数组的长度。
坑是有的,就是++i和j+1;
原题是这样的:
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,
Given input array nums = [1,1,2]
,
Your function should return length = 2
, with the first two elements of
nums being 1
and 2
respectively. It doesn't matter what you leave beyond the new length.
下面是跑成功并提交的代码:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==0)
{
return 0;
}
int j=0;
for(int i=1;i<nums.size();i++)
{
if(nums[j]!=nums[i])
{
nums[++j]=nums[i];
}
}
return j+1;
}
};