Four classic mistakes, each reproduced
======================================

1. longest substring without repeats, left = lastSeen + 1 WITHOUT Math.max
   input "abba":  buggy = 3   correct = 2
   at the final 'a', lastSeen('a') = 0, so the buggy code moves left from 2 back to 1

2. minimum-size subarray window used on input that contains negatives
   target 3, input [-2, -2, 3]:  window = 0 ("none")   brute force = 1 ([3])
   the running sum is -1 when the 3 arrives, so the window never looks valid

3. 3Sum without skipping duplicates
   input [-1, 0, 1, 2, -1, -4]
   buggy   = [[-1, -1, 2], [-1, 0, 1], [-1, 0, 1]]
   correct = [[-1, -1, 2], [-1, 0, 1]]

4. two pointers on an array that is NOT sorted
   input [3, 2, 4], target 6:  twoSumSorted = []   but 2 + 4 = 6 exists (brute force: true)
