C++零基础算法100题 - 排序数组中两个数字之和

122 阅读1分钟

题目链接: 剑指 Offer II 006. 排序数组中两个数字之和 - 力扣(LeetCode)

题目描述

image.png

解题思路

  1. 我们得到了一个数组
  2. 我们从前往后找,从后往前找,我们得到两个元素
  3. 我们将两个元素相加如果说为target,那么就返回true
  4. 否则最后我们返回false

代码实现

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        int l=0,r=numbers.size()-1;
        while(l<r){
            int tmp=numbers[l]+numbers[r];
            if(tmp<target){
                l++;
            }else if(tmp>target){
                r--;
            }else{
                return {l,r};
            }
        }
        return {};
    }
};