代码随想录学习笔记
1、暴力算法,时间复杂度O(n^2),不可取
2、快慢指针,碰到目标数据的时候,慢指针不动,快指针往后一格除此之外,快指针指向的数字覆盖掉满指针指向的。不过如果载体是数组,可以用下标代替指针
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int fast=0,slow=0;
while(fast!=nums.size()){
if(nums[fast]!=val){
nums[slow++]=nums[fast++];
}else{
fast++;
}
}
return slow;//这里不需要加1,是因为slow每次指向排好的序列的后面一个
}
};