Appearance
双指针之快慢指针
特指在原数组中进行修改的快慢指针。
快慢指针法
快慢指针法: 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
定义快慢指针
- 快指针:向前寻找目标元素
- 慢指针:修改数组元素
题目
27.移除元素
fast遍历数组,如果nums[fast]!=val就修改nums[slow++]=nums[fast]。
26.删除排序数组中的重复项
注意到非严格递增,则重复项一定连续。fast遍历数组,如果nums[fast]!=nums[slow],就修改nums[slow++]=nums[fast]。
283.移动零
fast遍历数组,如果nums[fast]!=0就修改nums[slow++]=nums[fast],剩余部分置0
844.比较含退格的字符串
fast遍历字符串,如果s[fast]!='#',就修改s[slow++]=s[fast],否则slow--(注意边界处理)。最后比较s到slow的部分和t是否相同。