链接:https://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b
来源:牛客网@华科渣硕

不要被题目误导了!证明如下,清晰明了:
//输出两个数的乘积最小的。这句话的理解?
假设:若b>a,且存在,
a + b = s;
(a - m ) + (b + m) = s
:(a - m )(b + m)=ab - (b-a)m - m*m < ab;说明外层的乘积更小
也就是说依然是左右夹逼法!!!只需要2个指针
1.left开头right指向结尾
2.如果和小于sum,说明太小了left右移寻找更的数
3.如果和大于sum,说明太大了right左移寻找更的数
4.和相等把left和right的数返回
--------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K 热度指数:184594

题目描述

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

输出描述:

对应每个测试案例,输出两个数,小的先输出。
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
if(array.size()== )return array;
auto start = array.begin();
auto end = array.end()-;
vector<int> vec;
while(start != end) {
if(*start+*end > sum) {
end--;
} else if(*start+*end < sum) {
start++;
} else {
vec.push_back(*start);
vec.push_back(*end);
break;
}
}
return vec;
}
};

剑指offer--37.和为S的两个数字的更多相关文章

  1. [剑指Offer]41.和为S的两个数字 VS 和为S的连续正数序列

    [剑指Offer]41 和为S的两个数字 VS 和为S的连续正数序列 Leetcode T1 Two Sum Given an array of integers, return indices of ...

  2. 剑指 Offer 57. 和为s的两个数字 + 二分法 + 双指针

    剑指 Offer 57. 和为s的两个数字 Offer_57 题目详情 使用二分法 package com.walegarrett.offer; /** * @Author WaleGarrett * ...

  3. 力扣 - 剑指 Offer 57. 和为s的两个数字

    题目 剑指 Offer 57. 和为s的两个数字 思路1(哈希表) 这题首先想到的是使用两个for遍历,查找是哪两个相加等于target,但是时间复杂度确实\(O(N^2)\),时间复杂度太高,因此我 ...

  4. 【剑指Offer】和为S的两个数字 解题报告(Python)

    [剑指Offer]和为S的两个数字 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...

  5. 《剑指offer》和为S的两个数字

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  6. 【Java】 剑指offer(57-1) 和为s的两个数字

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它 ...

  7. Go语言实现:【剑指offer】和为S的两个数字

    该题目来源于牛客网<剑指offer>专题. 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 对应每个测试案 ...

  8. 剑指offer系列45---和为s的两个数字

    [题目]输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S, package com.exe9.offer; /** * [题目]输入一个递增排序的数组和一个数字S,在数组中 ...

  9. 剑指Offer 42. 和为S的两个数字 (其他)

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 题目 ...

  10. 【剑指offer】和为s的两个数字

    原创博文,转载请注明出处! # 题目 # 思路 首先定义两个指针,第一个指针p指向数组的第一个数字,第二个指针q指向数组的最后一个数字.如果p+q=s,则找到要找的数字:如果p+q<s,则p向后 ...

随机推荐

  1. java 多线程 day02 定时器

    package com.czbk.thread; import java.util.Date;import java.util.Timer;import java.util.TimerTask; /* ...

  2. git 遇到的问题

    1.error: RPC failed; curl transfer closed with outstanding read data remaining 解决办法: git clone https ...

  3. React官网首页demo(单文件实现版)

    本博客实现React官网首页上展示的demo, 为了方便直接采用单文件的形式, 如果想完整集成 在自己的项目中, 可以参考React官网的安装指南, 安装Create React App. hello ...

  4. ceshi1

    图片素材

  5. Library Cache优化与SQL游标

    Library Cache主要用于存放SQL游标,而SQL游标最大化共享是Library Cache优化的重要途径,可以使SQL运行开销最低.性能最优. 1 SQL语句与父游标及子游标 在PL/SQL ...

  6. Dijkstra 算法初探

    一.Dijkstra 算法的介绍     Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到其他顶点的最短路径问题.举例来说,如果图中的顶点表示城市,而边上的 ...

  7. Flask 请求源码分析

    执行app.run()方法: def run(self, host=None, port=None, debug=None, **options): from werkzeug.serving imp ...

  8. delphi winio 输入

    var key:byte;//ASCII码 btScancode:DWord; //键码begin key:=VkKeyScan('b'); btScancode:= MapVirtualKey(ke ...

  9. Delphi 正则表达式语法(5): 边界

    Delphi 正则表达式语法(5): 边界 // \b 单词边界 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg ...

  10. eclipse添加tomcat运行时

    方法一:添加jar包 方法二配置依赖 比如缺少javax.servlet.http.HttpServlet,ctrol+shift+t查找这个包 <dependencies> <de ...