题目:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int i=0;
        int j=nums.size()-1;
        while(nums[j]>target&&j)j--;          //尾部指针先移动到比target小的值。本题要利用数组从小到大排序的特性。
        while(i<j){
            if(nums[i]+nums[j]==target)return {nums[i],nums[j]};     //如果sum==target,返回
            else if(nums[i]+nums[j]>target)j--;                      //如果sum>target,需要减小,尾部指针前移
            else i++;                                                //如果sum<target,需要增大,前端指针后移
        }
        return {};
    }
};
posted on 2023-07-26 21:27  孜孜不倦fly  阅读(12)  评论(0)    收藏  举报