# Two-Pointer Technique A programming trick that works on [[array]]s. - Why it works? - It utilizes properties of the problem, e.g. when targeting a fixed sum, increasing `a` implies decreasing `b` ([[3-sum]] and [[container-with-most-water]]) - It provides detailed control over iteration, e.g. skipping duplicates in [[3-sum]] - The keys? - Sorting the original array is often helpful - Find the pattern required by the problem. - Determine how to advance the pointers. In an optimization problem such as [[container-with-most-water]], the suboptimal value should be replaced.