Problem: Reverse an array in-place without extra storage. Given {1, 2, 3, 4, 5}, produce {5, 4, 3, 2, 1}. The challenge is doing this without creating a second array for the result. Approach: Use two pointers, one at beginning and one at end.
Swap elements at these positions, then move both toward center. Continue until they meet or cross in the middle. Each swap moves two elements to final positions. After swapping first and last, swap second and second-to-last.
Half the length determines swap count. Linear time, constant space.