1001 数组中等于K的数对

来源:互联网 发布:dayz独立版垃圾优化 编辑:程序博客网 时间:2024/05/20 18:43
#include<iostream>#include<vector>#include<algorithm>using namespace std;int A[50000];int main(){int N,i,j;int flag=0;  long long K;  cin>>K;cin>>N;  for(i=0;i<N;i++){scanf("%d",&A[i]);  }  sort(A,A+N);  for(i=0,j=N-1;i<j;i++){if((A[i]+A[j])>K){j--;i--;}else{if((A[i]+A[j])==K){flag=1;cout<<A[i]<<" "<<A[j]<<endl;}}  }  if(flag==0){  cout<<"No Solution";}   return 0;}


错误总结:

最开始写了个暴力超时,需要改为O(n)才行 (最开始的sort为n*logn)

sort(A,A+N);传入参数为地址,起始位A,排序N个,结尾本应为A+N-1,但这里的参数应传入A+N 多一个

j=N-1写成了j==N-1。。。 


0 0
原创粉丝点击