1ms. Two pointers.

- Set head and tail to proper positions.
- Begin search.

```
public int[] twoSum(int[] numbers, int target) {
if(numbers == null) throw new IllegalArgumentException("Invalid Input");
int head = 0;
int minReq = target - numbers[numbers.length-1];
while(numbers[head] < minReq)
head++;
int tail = numbers.length-1;
int maxReq = target - numbers[0];
while(numbers[tail] > maxReq)
tail--;
while(head < tail)
{
if(numbers[head] + numbers[tail] == target) return new int[]{head+1, tail+1};
else if(numbers[head]+numbers[tail] < target) head++;
else tail--;
}
return new int[0];
}
```