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 

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

  • 相关阅读:
    es6 数组的扩展
    面向对象的7大原则及其实例
    flex 布局
    一、创建vue
    箭头函数
    destructuring
    spreed&rest
    变量新声明之let、const
    jQuery之遍历索引相关方法
    jQuery之位置坐标图形相关方法
  • 原文地址:https://www.cnblogs.com/double-win/p/3751836.html
Copyright © 2011-2022 走看看