Here's the one I mentioned before. It comes as sorted array.
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int> &numbers, int target) { 4 int start = 0, end = numbers.size()-1, sum = 0; 5 vector<int> result(2); 6 while (start < end) { 7 sum = numbers[start] + numbers[end]; 8 if (sum == target) { 9 result[0] = start+1; 10 result[1] = end+1; 11 return result; 12 } 13 if (sum > target) end--; 14 else start++; 15 } 16 } 17 };