2-sum问题

来源:互联网 发布:淘宝hd老版本 编辑:程序博客网 时间:2024/06/15 14:30
#include <iostream>  #include <algorithm>using namespace std;  int binarysearch(int key,int a[],int hi){int lo=0;while(lo<=hi){int mid=lo+(hi-lo)/2;if(key<a[mid]) hi=mid-1;else if(key>a[mid]) lo=mid+1;else return  mid;}return -1;}void main()  {     int a[10]={-1,2,4,0,-2,8,-3,1,5,3};int hi=sizeof(a)/sizeof(int);sort(a,a+hi);//快速排序int cnt=0;for(int i=0;i<hi;i++){int k=binarysearch(-a[i],a,hi);//二分查找if(k>i){cout<<a[i]<<" "<<a[k]<<endl;++cnt;}}if(cnt==0)cout<<"no"<<endl;system("pause");}