双指针觉得写过很多次了嘛,但是没有笔记,可能=滑动窗口
要点就是快指针每次都走 慢指针看条件走
快慢指针一(滑动窗口版)
26. 删除有序数组中的重复项
80. 删除有序数组中的重复项 II
通解:
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
n = len(nums)
def sove(k):
fast = slow = k
while fast < n:
if nums[fast] != nums[slow-k]:
nums[slow] = nums[fast]
slow += 1
fast += 1
return slow
return sove(2)
快慢指针二(龟兔版本)
141. 环形链表
class Solution:
def hasCycle(self, head: ListNode) -> bool:
p = q = head
while True:
if not (q and q.next): return False
p , q = p.next , q.next.next
if p == q : return True
class Solution:
def detectCycle(self, head: ListNode) -> ListNode:
slow = fast = head
while True:
if not (fast and fast.next):return
fast , slow =fast.next.next ,slow.next
if fast == slow : break
fast = head
while fast!= slow:
fast,slow = fast.next,slow.next
return fast