zoukankan      html  css  js  c++  java
  • [LeetCode 题解]: Two Sum

    前言

    【LeetCode 题解】系列传送门:  http://www.cnblogs.com/double-win/category/573499.html

    1.题目描述

    Given an array of integers, find two numbers such that they add up to a specific target number.

    The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

    You may assume that each input would have exactly one solution.

    Input: numbers={2, 7, 11, 15}, target=9
    Output: index1=1, index2=2

    2. 题意

    给定一组数字,找到两个元素,使得两者的和满足一个给定的目标值Target。

    返回值要求:输出的两个数,index1 必须小于index2.

    3. 思路

    1. 暴力BF,直接超时

    2. hash,用映射 STL: map + vector

    4. 解法

    class Solution {
    public:
        vector<int> twoSum(vector<int> &numbers, int target) {
              map<int ,int> match;
              vector<int> ans;
              ans.clear();
              int i;
              for(i=0;i<numbers.size();i++)
                  match[numbers[i]] = i+1;  // 记录位置
              for(i=0;i<numbers.size();i++)
              {
    
                   if(match.find(target - numbers[i]) != match.end()  && i+1 != match[target - numbers[i]])  // map映射
                   {
                       ans.push_back(i+1);
                       ans.push_back(match[target-numbers[i]]);
                       break;
                   }
              }
              return ans;
        }
    };

    作者:Double_Win

    出处: http://www.cnblogs.com/double-win/p/3751836.html 

    声明: 由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正~

  • 相关阅读:
    GolandQuick编辑器快捷键
    GitStand
    高阶函数
    文本和字节序列
    元组用法
    映射的弹性键查询
    字典的setdefault()
    数组、内存视图、双向队列
    Python之random.seed()用法
    用bisect来管理已排序的序列
  • 原文地址:https://www.cnblogs.com/double-win/p/3751836.html
Copyright © 2011-2022 走看看