给定一个数组,找到两个数,使得他们的和为一个给定的数值target。
函数twoSum返回两个数字index1,index2,
其中:number[index1] + number[index2]==target;
注意:index1必须小于index2且不能为0假设每一组输入只有唯一的一组解。
格式:第一行输入一个数n,接下来的两行分别输入数组number[n]和target,返回index1和index2.
例如:
Input:
numbers={2, 7, 11, 15},
target=9
Output:
index1=1, index2=2
提示:vector twoSum(vector &number, int target)
样例1
输入:
3
5 75 25
100
输出:
2 3
#include<iostream>
using namespace std;
void twoSum(int n,int A[],int target,int &index1,int &index2)
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(A[i]+A[j]==target)
{
index1=i+1;
index2=j+1;
break;
}
}
int main()
{
int m,n,target,index1,index2;
cin>>n;
int *A=new int[n];
for(int k=0;k<n;k++)
{
cin >>m;
A[k]=m;
}
cin >>target;
twoSum(n,A,target,index1,index2);
cout<<index1<<" "<<index2;//不能加“endl”否则格式不对,通不过
delete []A;
return 0;
}