First implementation, use two pointers
First implementation, use two pointers