data structures
two pointers
