I'm doing a leetcode challange where I'm given a vector of integers and a target sum. My goal is to find and return a vector containing indices of the pair of indexes which point to values that when summed is equal to some target value.
This is my current solution:
#include <algorithm>
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
auto bitr = nums.begin();
auto eitr = nums.end()-1;
sort(bitr, eitr);
vector<int> output;
while(bitr != eitr)
{
if(*bitr + *eitr == target)
{
output.push_back(distance(nums.begin(),bitr));
output.push_back(distance(nums.begin(),eitr));
break;
}
else if(*bitr + *eitr > target)
eitr--;
else if(*bitr + *eitr < target)
bitr++;
}
return output;
}
};
It passes 6/33 test case, but fails cases such as:
Input: [3,2,4] 6 Output: [0,2] Expected: [1,2]