Two Pointer

  1. 确定converge 方法, close interval/open interval/half open/half close
  2. 最后converges出来的答案是什么, r=l?
  3. stop condition

Linked List

  1. Two Pointer or Recursion
dummy = ListNode(0)
cur = dummy

Tree

DFS:stack (LIFO) .pop()

BFS:deque(FIFO) .popleft()

from collections import deque
q = deque([root)   #deque(iterable)

要用 HashSet → 就用 set() 要用 HashMap(带默认值)→ 用 defaultdict(int)

divmod(a, b) = (quotient, remainder) = (q = a // b , a%b)
usually q = math.floor(a/b)

"""
How to get ceilling division? (a, b) = (divident, divisor)
"""
q = (a + b - 1) // b

non local