1. 题目描述
2. 思路及代码
2.1 思路
- 快慢指针法,慢指针
slow
始终指向符合题意的最后一个数字,快指针fast
逐个扫描所有元素 - 若
nums[slow]==nums[fast]
,++fast
- 若
nums[slow]!=nums[fast]
,++slow
,再使用nums[fast]
更新nums[slow]
处的值
2.2 代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n = nums.size();
if (n <= 1) return n;
int slow = 0;
for (int fast = 1; fast != n; ++fast) {
if (nums[slow] != nums[fast]) {
++slow;
nums[slow] = nums[fast];
}
}
return slow + 1;
}
};
来源:CSDN
作者:weixin_42075898
链接:https://blog.csdn.net/weixin_42075898/article/details/103738855