算法总结

61 阅读1分钟

双指针优化算法

思路及算法
双指针:左右指针分别位于数列的头尾,向中间移动遍历该序列
算法:如果左指针指向的元素等于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;
}