题目描述
在一个升序排列的数组里面,找出两个数,使它们的和为target。问有哪几种方案(数字都不重复)
输入
第一行输入一个数n(n<=100000)
第二行输入n个元素的一个升序排列的数组
第三行输入target的值
输出
升序排列的数组中两个元素和为Target的所有方案
样例输入
4 2 7 11 15 9
样例输出
1,2
Code:
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],target;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}cin>>target;int i=1,j=n;while(i<=j){if(a[i]+a[j]==target){cout<<i<<","<<j<<endl;i++;j--;}if(a[i]+a[j]<target){i++;continue;}if(a[i]+a[j]>target){j--;continue;}}return 0;
}
/**************************************************************Problem: 2809User: yangrenruiLanguage: C++Result: 正确Time:301 msMemory:2568 kb
****************************************************************/