解决力扣第26题,论删除重复项
2026/6/23 22:10:41 网站建设 项目流程

class Solution {
public:
int removeDuplicates(vector<int>& nums){
if(nums.empty())return 0;
int slow=0;
for(int fast=1;fast<nums.size();fast++ ){
if(nums[fast-1]!=nums[fast]){
slow++;
nums[slow]=nums[fast];
}//0,1,2,1,1,2,2
}
return slow+1;
}
};
```主要是应用了数组当中的双指针思想,不只是单纯C语言中意义上的指针类型,也可以用序列来表示,我来解释一下,为什么fast要从一开始?因为,fast要从零开始的话,要用fast和fast+1来进行比较,当fast取到数组中的最后一个数,那fast+1呢就会溢出这个数组,如果fast取一的话,那么就可以用fast和fast- 1来比较,这样的话就不会溢出。慢指针更感觉意义上是用它来指代那个删除多余项后的新数组。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询