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

【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出思路因为数组已经排好序了,我们设定两个指针small和big指向两端,如果此时两者的和大于sum,那么big左移,如果小于sum,那么small右移,,一旦等于,那么同时这两者也正好是乘积最小的一对,我们就可以结束了。

class Solution{public:vector<int> FindNumbersWithSum(vector<int> array,int sum){vector<int> ans;int len = array.size();if(len<2)return ans;int small = 0;int big = len-1;while(small<big){if(array[small]+array[big] == sum){ans.push_back(array[small]);ans.push_back(array[big]);return ans;}else if(array[small]+array[big]>sum)big–;elsesmall++;}return ans;}};

版权声明:本文为博主原创文章,如果转载,请注明出处

不论你在什么时候开始,重要的是开始之后就不要停止

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

相关文章:

你感兴趣的文章:

标签云: