和为S的两个数字
2016-08-07 11:10
204 查看
题目描述
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述:
对应每个测试案例,输出两个数,小的先输出。
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum)
{
vector<int> num;
vector<int> out;
int len=array.size();
if(len < 2)return num;
int start=0;
int end=len-1;
int currentsum=0;
while(end>start)
{
currentsum=(array[start]+array[end]);
if(currentsum==sum)
{
num.push_back(array[start]);
num.push_back(array[end]);
return num;
}
else if(currentsum<sum)
start++;
else
end--;
}
return num;
}
};
相关文章推荐
- Linux改变进程优先级 linux Nice命令
- usaco2016open silver2 diamond
- usaco2016open silver1 reduce
- 三维BFS: Dungeon Master
- usaco2016open bronze3 reduce
- usaco2016open bronze1 diamond
- USACO 2016 February Contest, Silver Problem 3. Milk Pails
- string、stringbuilder、stringbuffer区别
- LVS简介及使用
- USACO 2016 February Contest, Silver Problem 2. Load Balancing
- JavaScript求链表的环大小
- USACO 2016 February Contest, Bronze Problem 3. Load Balancing
- USACO 2016 FEBRUARY CONTEST, BRONZE PROBLEM 1. MILK PAILS
- 集训第一周小结
- 计算几何中的精度问题(转)
- 最大值求和(summax)
- K 叉树( ktree )
- 组题(pro)
- 市选总结
- next_permutation函数