class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.size() <= 1) {
return nums.size();
}
int slow = 0;//前面的数
int fast = 1;//后面的数
while (true) {
//fast只要不大于slow 并且 不越界就就一直找,fast是单个最后相同元素的索引
while (nums[fast] <= nums[slow] && fast + 1 < nums.size()) {
fast++;
}
//说明fast找到了最后也没找到
if (nums[fast] == nums[slow]) {//最后一个fast
return slow + 1;
} else {
//fast找到了一个大于slow的值,把slow后面的值替换为fast
nums[++slow] = nums[fast];//++进行下一轮查找。
}
}
}
};
26. 删除有序数组中的重复项2021-10-28
最新推荐文章于 2024-08-21 22:23:47 发布