leetcode Two Sum II - Input array is sorted <面试常考题>

题目描述

//二分查找的变形   用头尾两个指针进行  面试考察题

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        vector<int>  ret;
        if(numbers.size() == 0)
            return ret;
        int i = 0;
        int j = numbers.size() -1;
        
        while(i < j){
            if(numbers[i] + numbers[j] == target){
                ret.push_back(i+1);
                ret.push_back(j+1);
                return ret;
            }
            if(numbers[i] + numbers[j] > target){
                j--;
            }
            if(numbers[i] + numbers[j] < target){
                i++;
            }
        }
        return ret;
    }
};

 

posted @ 2017-04-28 15:40  StrongYaYa  阅读(197)  评论(0编辑  收藏  举报