题目
数组接口:vector,
erase,O(n),删除数组中的元素
暴力破解:两个for循环
双指针思路
有数组:
1 | 2 | 3 | 4 | 3 | 5 |
删除目标值为3;
快指针指向新数组需要的元素;慢指针是获取新数组中需要更新的位置(可以理解为read、write指针)
slow = 0;
for(fast = 0; fast < nums.size; fast++){ //快指针移动
if( num[fast] != val ){ //快指针指向的数不等于目标值,更新下标
nums[slow] = nums[fast]; //这两行可以替代为
slow++; //nums[slow++] = nums[fast];
}
}
return slow; //新数组的大小