class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int> ans;//{numbers[i],numbers[mid]};
for(int i = 0; i < numbers.size()-1; i++){
if(i != 0 && numbers[i] == numbers[i - 1]) continue;
int s = i + 1;
int t = numbers.size();
int diff = -numbers[i] + target;
while(s < t){
int mid = s + ((t - s) >>1);
if(numbers[mid] < diff){
s = mid + 1;
}else if(numbers[mid] > diff){
t = mid;
}else{
ans.push_back(i+1);
ans.push_back(mid+1);
return ans;
}
}
}
return ans;
}
};