class Solution
{
public:
    vector<int> twoSum(vector<int> &numbers, int target)
    {
        int i = 0;                  //第一个指针从头开始
        int j = numbers.size() - 1; //第二个指针从末尾开始
        while (i < j)
        {
            int sum = numbers[i] + numbers[j]; //sum为两数之和
            if (sum > target)                  //sum比目标值大了，则需要变小，于是末尾指针前移
            {
                j--;
            }
            else if (sum < target) //sum比目标值小了，则需要变大，于是首指针后移
            {
                i++;
            }
            else //不大于也不小于，则等于。满足了条件，返回即可
            {
                return {i + 1, j + 1}; //由于返回的是下标值，所以需要+1
            }
        }
        return {-1, -1};
    }
};
