两数之和

来源:互联网 发布:excel相关系数矩阵 编辑:程序博客网 时间:2024/06/07 20:16

题目:

给一个整数数组,找到两个数使得他们的和等于一个给定的数 target

你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。

样例

给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].

思路:

通过遍历来判断数组中每两个数的和是否等于给定数。

具体代码:

class Solution {

public:
    /*
     * @param numbers : An array of Integer
     * @param target : target = numbers[index1] + numbers[index2]
     * @return : [index1+1, index2+1] (index1 < index2)
     */
    vector<int>v;
    vector<int> twoSum(vector<int> &nums, int target){
      vector<int>::iterator iter;
      vector<int>::iterator position;
      int a=0;
      int b=1;
    for(iter=nums.begin();iter!=nums.end()-1;iter++){
        a++;
        b=a;
        for(position=iter+1;position!=nums.end();position++){
            b++;
            if(*position+*iter==target){
                v.push_back(a);
                v.push_back(b);
            }
            
        }
    }
    return v;
    }

};

感想:

此题较简单,但应注意可以通过定义整型数a,b来记录两点的位置。

原创粉丝点击