题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1048
水题,升序排序,设置头尾游标i,j 向中间搜索, 复杂度为n
1 #include<cstdio> 2 #include<algorithm> 3 #include<vector> 4 using namespace std; 5 6 vector<int> v; 7 8 int main(){ 9 int N,M; scanf("%d%d",&N,&M); 10 v.resize(N); 11 for(int i=0; i<N; ++i) 12 scanf("%d", &v[i]); 13 sort(v.begin(), v.end()); 14 int i(0),j(N-1); 15 while(i < j){ 16 if(v[i]+v[j] == M){ 17 printf("%d %d ", v[i], v[j]); 18 return 0; 19 } 20 else if(v[i]+v[j] < M) 21 ++i; 22 else 23 --j; 24 } 25 printf("No Solution "); 26 return 0; 27 }