代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.empty())
return 0;
int slowIndex = 0;
int fastIndex = 0;
while(fastIndex < nums.size())
{
if(nums[fastIndex] != nums[slowIndex])
{
nums[++slowIndex] = nums[fastIndex];//slowIndex先后移,再赋值
}
fastIndex++;
}
return slowIndex + 1;
}
};
思考
1.时间复杂度O(n)
空间复杂度O(1)
2.要考虑到nums的所有情况:为空,存在重复数值,不存在重复数值
3.return slowIndex++是起不到先加再返回的效果的,需要写成return ++slowIndex
或者return slowIndex+1就完事了!