C++零基础算法100题 - 两数之和 II - 输入有序数组

72 阅读1分钟

题目链接: 167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)

题目描述

image.png

解题步骤

  1. 我们得到一个数组
  2. 这个数组我们得到之后要从后往前,从前往后进行遍历。
  3. 如果说找到我们想要的就返回true
  4. 注意点是如果说找到了,那么我们结果的两个下标值就要分别+1,因为是从1开始的
  5. 没有找到就返回空数组。

代码实现

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+1,r+1};
            }
        }
        return {};
    }
};