双指针法定义
双指针法:通过快指针和慢指针在一个for循坏下完成两个for循坏工作
快指针:寻找数组中不含目标元素的新数组(即与目标元素不等的元素)
慢指针:指向新数组下标位置(可以看出新数组长度)
元素移除题目:
解题示例代码
以下为js实现代码(注意:js中获取数组长度需调用length属性,不能使用size)
var removeElement = function (nums, val) {
//慢指针
let slowIndex = 0
for (fastIndex = 0; fastIndex < nums.length; fastIndex++) {
//快指针
if (nums[fastIndex] != val) {
//将快指针指向的与目标元素不相等的值赋给慢指针对应的位置上
nums[slowIndex] = nums[fastIndex]
slowIndex++
}
}
//如果遇到相等值直接返回当前慢指针位置 ,不更新慢指针的值
//直到下一个不相等的值出现,赋给当前慢指针位置
return slowIndex
};