数组:移除元素其实很简单!
26. 数组:删除排序数组中的重复项
思路:
要知道数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。我们采用双指针的方法
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==0)
return 0;
int slow=0;
int fast=0;
for(fast=0;fast<nums.size()-1;fast++)
{
if(nums[fast]!=nums[fast+1])
{
nums[++slow]=nums[fast+1];
}
}
return slow+1;
}
};
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slow=0;
int fast=0;
for(int fast=0;fast<nums.size();fast++)
{
if(nums[fast]!=val)
{
nums[slow++]=nums[fast];
}
}
return slow;
}
};