在数组中找出一对数字,让数字之和等于某个固定的数

  • 示例: [3,7,2,9], 找出和为9的(7,2),返回下标集合{1,2}
  • 思路:既然要找的结果是下标,就让下标成为value,建立一个map,遍历数组,让map的key为元素,下标为value,这样可以以最快的速度获取到。再次遍历数组,拿出第一个元素3,9-3=6,根据6去map找有没有结果(没有),继续下一轮循环,拿出7,9-7=2,根据2去map查找下标(index = 2),比较当前索引(1)和找到的下标(2),排序{1,2},程序结束。
  • 代码 (C++ version)
vector twoSum(vector&nums, int target) {
        vector result;
        unordered_map map;         
        for(int i=0; i

你可能感兴趣的:(在数组中找出一对数字,让数字之和等于某个固定的数)