class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param info int整型vector
     * @param target_weight int整型
     * @return int整型vector
     */
    vector<int> findWeightRelation(vector<int>& info, int target_weight) {
        // write code here
        int n = info.size();
        int l = 0, r = n - 1;
        while (l < r) {
            int ans = info[l] + info[r];
            if (target_weight == ans)return {l + 1, r + 1};
            else if (target_weight < ans)r--;
            else l++;
        }
        return {-1, -1};
    }
};

一、题目考察的知识点

双指针

二、题目解答方法的文字分析

题目意思是找到一个区间的左端点和右端点所代表值的和等于目标值,那么真好可以双指针移动,因为数组是非递减的,所以如果找到了就直接返回目标结果,没找到就看当前大小再去相应的调整

三、本题解析所用的编程语言

c++