您的位置:首页 > 其它

快速寻找满足条件的两个数

2015-01-05 20:15 246 查看
《编程之美》第2.12节:快速寻找满足条件的两个数

题目:给定一个数组,找出数组中两个数,使其和为给定的sum。

解法:先进行排序,然后左右夹逼。leetcode中的TowSum即是这个题。

程序如下:

#include<iostream>
#include<algorithm>
using namespace std;

pair<int,int> twoSum(int *A,int N,int sum)
{
sort(A,A+N);
for(int i=0,j=N-1;i<=j;)
{
if(A[i]+A[j]==sum)
return pair<int,int>(i,j);
else if(A[i]+A[j]>sum)
j++;
else
i++;
}
}

int main()
{
int A[7]={5,6,1,4,7,9,8};
pair<int,int> result=twoSum(A,7,10);
cout<<A[result.first]<<"	"<<A[result.second]<<endl;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: