双指针优化算法
思路及算法
双指针:左右指针分别位于数列的头尾,向中间移动遍历该序列
算法:如果左指针指向的元素等于val,就让右指针的元素赋值给左指针指向的元素,右指针左移一位。如果赋值过来的元素恰好也等于val,可以继续把右指针指向的元素赋值过来(左指针left指向的等于val的元素继续被覆盖),直到左指针指向的元素不等于val为止
int removeElement(int *nums,int numsSize,int val){
int left = 0; int right = numsSize;
while(left<right){
if(nums[left]==val){
nums[left]=nums[right-1];
right--;
}else{
left++
}
}
return left;
}