#include <iostream>
#include <utility>
#include <algorithm>
#include <stdio.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
pair<int,int> findSum(int * m,int sum,int size){
//如果是未排序的数组则先调用标准库的Sort函数排序
pair<int,int> result;
result.first=-1;
result.second=-1;
sort(m,m+size);
int * begin=m;
int * end=m+size-1;
while(begin<end){
if((*begin)+(*end)>sum){
end--;
}
if((*begin)+(*end)<sum){
begin++;
}
if((*begin)+(*end)==sum){
result.first=*begin;
result.second=*end;
return result;
}
//cout<<result.first<<" "<<result.second<<endl;
}
//cout<<result.first<<" "<<result.second<<endl;
return result;
}
int main(int argc, char** argv) {
int m[]={3,4,5,61,25,7};
pair<int,int> finalResult=findSum(m,9,6);
cout<<finalResult.first<<" "<<finalResult.second<<endl;
system("pause");
return 0;
}
寻找满足条件的两个数
最新推荐文章于 2020-03-03 17:04:53 发布