首页 > 代码库 > 计蒜客 两数之和

计蒜客 两数之和

给定一个数组,找到两个数,使得他们的和为一个给定的数值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)

样例输入

35 75 25100

样例输出

2 3
 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 vector<int> twoSum(vector<int> &number, int target){ 5     vector<int> v(2); 6     int num = number.size(); 7     for(int i = 0; i < num - 1; i++){ 8         for(int j = i + 1; j < num; j++){ 9             if(number[i] + number[j] == target){10             v[0] = i + 1;11             v[1] = j + 1;12             }13         }14     }15     return v;16 }17 18 int main(){19     int n;20     cin >> n;21     vector<int> v(n);22     for(int i = 0; i < n; i++){23         cin >> v[i];24     }25     int target;26     cin >> target;27     vector<int> v1 = twoSum(v, target);28     cout << v1[0] << " " << v1[1] << endl;29     return 0;30 }

如果返回的是两个元素值,则可以先排序,然后首尾两个指针扫描

 

计蒜客 两数之和