167. Two Sum II

来源:互联网 发布:北京网络职业学院搬迁 编辑:程序博客网 时间:2024/05/23 01:23
class Solution {public:    vector<int> twoSum(vector<int>& numbers, int target) {        vector<int> ans;                int ending = numbers.size() - 1;        int temp;        for(int i = 0; i <= ending; ++i){            int toFound = target - numbers[i];            int temp = search(numbers, i+1, ending, toFound);            if(temp != -1){                ans.push_back(i+1);                ans.push_back(temp+1);                break;            }        }                return ans;    }        int search(vector<int> &n, int low, int high, int target){        while(low <= high){            int mid = (low + high) / 2;            if(n[mid] == target){                return mid;            }                        else if(n[mid] > target)                high = mid - 1;            else                low = mid + 1;        }        return -1;    }    };