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
是否相同。