Two sum

原创 2015年11月17日 17:10:43

题意:
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
代码:

class Solution {
private:
    map<int,int> mp;
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        // 注意return的序号从1开始
        // 想法比较巧妙:主要思想映射
        int index1=-1,index2=-1;
        for(int i=0;i<nums.size();++i){
            if(mp.find(nums[i])==mp.end()){
                mp.insert(make_pair(target-nums[i],nums[i]));
            }
            else{
                if(mp.find(nums[i])->second==target-nums[i]){
                     index2=i;
                     break;
                }
                else mp.insert(make_pair(target-nums[i],nums[i]));
            }
        }
        for(int i=0;i<nums.size();++i){
            if(nums[index2]+nums[i]==target){
                index1=i;
                break;
             }
        }
        return {index1+1,index2+1};
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Two Sum算法调试小demo

  • 2017-08-17 18:01
  • 833B
  • 下载

Two Sum leetcode c++

  • 2015-10-01 10:47
  • 763B
  • 下载

#1 Two Sum

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

[LeetCode] Two Sum

题目: Given an array of integers, return indices of the two numbers such that they add up to a speci...

【LeetCode-面试算法经典-Java实现】【001-Two Sum(求两个数的和)】

给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字。要求:这个函数twoSum必须要返回能够相加等于目标数字的两个数的索引,且index1必须要小于index2。请注意一点,你返回的结果(包...

Two Sum

package leetcode.xuyi; import org.junit.*; import java.util.Arrays; import java.util.HashMap; /** ...

【Leetcode】1. Two Sum

1. Two Sum Total Accepted: 254411Total Submissions: 1031847Difficulty: Easy Given an array...

29. Divide Two Integers/49. Group Anagrams/96. Unique Binary Search Trees/560. Subarray Sum Equals K

Divide Two Integers Problem Description Implementation29. Divide Two IntegersProblem DescriptionDivi...

leetcode No.1 Two Sum

题意: 给定一个数组, 给定一个目标数, 找出数组中和等于目标数的两个数的位置。 题目相对简单。但是第一次接触leetcode觉得挺新鲜,选择C++语言答题后编辑框中是这样的: class Sol...

DAY1:leetcode #1 Two Sum

1、Two Sum Given an array of integers, return indices of the two numbers such that they add up to a...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)