#include "soln.hpp" vector Solution::twoSum(vector &numbers, int target) { // two sum approach // unordered_mapmp; // for(int i = 0; i < numbers.size(); i++) { // if(mp.find(target-numbers[i]) == mp.end()) { // mp[numbers[i]] = i; // } else { // return vector{(mp.find(target-numbers[i])->second)+1, i+1}; // } // } // return vector{-1,-1}; int left = 0, right = numbers.size() - 1; int sum = numbers[left] + numbers[right]; while (sum != target) { if (sum < target) { left++; } else { right--; } sum = numbers[left] + numbers[right]; } return {left + 1, right + 1}; } bool Solution::test(vector &numbers, int target, vector &answer) { return twoSum(numbers, target) == answer; }