题解 | #和为S的两个数字#

和为S的两个数字

https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

class Solution {
 public:

  int binarySearch(vector<int> array, int target, int l, int r) {
    while (l <= r) {
      int mid = l + (r - l) / 2;
      if(array[mid] < target)
      {
        l = mid + 1;
      }
      else if(array[mid] > target){
        r = mid - 1;
      }
      else{
        return target;
      }
    }
    return -1;
  }
  vector<int> FindNumbersWithSum(vector<int> array, int sum) {
    vector<int> res;
    for(int i = 0;i<array.size();i++)
    {
      int leaveValue = binarySearch(array, sum-array[i], i+1, array.size()-1);
      if(leaveValue == -1){
        continue;
      }
      else{
        res.push_back(array[i]);
        res.push_back(leaveValue);
        return res;
      }
    }
    return {};
  }
};

先确定第一个数,然后在剩余的数组中进行二分查找。

全部评论

相关推荐

研一开学九月份速成的Java,项目是苍穹外卖和黑马点评,算法基础不好,八股文较为熟练,想找份小厂日常实习,希望牛友们给点意见,蟹蟹啦
求offer的花生米很聪敏:三个月学了这么多?spring springmvc mybatis springboot jvm juc,还做完了两个项目,还熟悉八股,会点算法。卧槽,我该反思了。我暑假开始的,就做了外卖,spring springmvc boot 那些原理好多都忘了,还在刷 jvm 视频,八股和算法也没开始
点赞 评论 收藏
分享
今天 12:21
门头沟学院 C++
赶快把我创到似:语言的魅力
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 22:29
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务