LeetCode - 数组中使用指针的技巧
快慢指针
L26 删除有序数组的重复项
当快指针遍历到数组中的重复项时,快指针继续向前遍历;当快指针遍历到不重复的数值时,慢指针将该数值赋值并前进到下一位。
L27 删除数组中的指定元素
快指针遇到targetval则直接跳过,否则慢指针将该数值赋值并前进到下一位。
左右指针
相向而行 - L167 两数之和2
因为是排好序的,所以计算sum的时候若< target, 在时,则左指针向右移动一位,增大和的值;如果和大于目标值,则右指针向左移动一位,减小和的值。直到满足target或左右指针相遇
除此之外,一些reverse的操作例如按字符翻转一个String (char[]),也就是left和right从头开始交换,然后双指针相向而行
从中间扩散 - L5 回文串
判断回文串就是从middle开始,指针向两边移动判断isEqual
在完成一个判断回文串的函数后,L5这道题还有一个需要实现的点是分别处理如果回文串的长度为奇数或偶数的问题。
This post is licensed under CC BY 4.0 by the author.