题解 | #和为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 {};
  }
};

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

全部评论

相关推荐

哈哈哈哈哈哈哈哈哈哈这个世界太美好了
凉风落木楚山秋:毕业出路老师不管,你盖个章他好交差就完事了,等你盖完毕业了就不关他事情了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务