问题:
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
思路:
(1)使用数据结构map
(2)不着急把所有数据放到map中去,首先查找target-numbers[i]值在不在map中,在说明找到了,第一个index是找到的map中保存的index,第二个index是当前的i;
(3)如果target-numbers[i]值没找到,并且当前的numbers[i]不在map中,将当前值加入map中。
代码:
class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target) {
vector<int> index;
map<int, int> mp;
map<int, int>::iterator iter;
for(int i = 0; i != numbers.size(); ++i) {
iter = mp.find(target-numbers[i]);
if(iter != mp.end() ) {
int start = mp.find(target-numbers[i])->second;
int end = i + 1;
index.push_back(start);
index.push_back(end);
return index;
} else {
map<int, int>::iterator it = mp.find(numbers[i]);
if(it == mp.end()) {
mp[numbers[i]] = i + 1;
}
}
}
}
};
分享到:
相关推荐
c语言入门 c语言_leetcode题解01-two-sum.c
javascript js_leetcode题解之170-two-sum-iii-data-structure-design.js
javascript js_leetcode题解之167-two-sum-II-input-array-is-sorted.js
js js_leetcode题解之1-two-sum.js
c c语言_leetcode 0001_two_sum
java入门 java_leetcode题解之001_Two_Sum
python python_leetcode题解之170_Two_Sum_III-Data_structure_design.py
python python_leetcode题解之167_Two_Sum_II_Input_array_is_sorted.py
function twoSum(nums, target) { const map = new Map(); for (let i = 0; i ; i++) { const complement = target - nums[i]; if (map.has(complement)) { return [map.get(complement), i]; } map.set(nums...
leetcode-1-Two-Sum 这是我在 Github 的第一天。 我只是 AC leetcode 中的第一个问题。 从现在开始,我将使用Github在leetcode中记录我的生活。 我擅长 C++,但对 java 和 Python 不是很专业,我将使用最流行的 3 种...
Two-Sum leetcode两数之和代码 题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组...
Two-Sum(两数和问题) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下 可以假设每种输入只会对应一个答案。但是,不能重复利用这个数组中同样的...
c代码-1. 两数之和 [简单] https://leetcode-cn.com/problems/two-sum
def twoSum(nums, target): left, right = 1, len(nums) - 1 while left current_sum = nums[left] + nums[right] if current_sum == target: return left, right elif current_sum left += 1 else: ...
这段代码定义了一个名为`Solution`的类,其中有一个名为`twoSum`的方法,接受一个整数数组`nums`和一个整数`target`作为参数,返回一个包含两个整数的数组,表示满足条件的两个数的索引。 总的来说,解决这个问题...
在MATLAB中,"sumoftwo向量"的开发通常涉及到向量操作和可视化技术。向量是线性代数中的基本概念,它由一组有序的数字构成,这些数字可以代表坐标系统中的位置或者物理量的大小和方向。在MATLAB这种强大的数学计算...
Two Sum. Memory Usage: 5.8 MB, less than 99.36% of C online submissions for Two Sum. #1. Two Sum Given an array of integers nums and an integer target, return indices of the two numbers such that they...
twoSum 应该返回两个数字的索引,使它们相加为目标,其中 index1 必须小于 index2。 请注意,您返回的答案(index1 和 index2)不是从零开始的。 您可以假设每个输入都只有一个解决方案。 输入:number={2, 7, 11, ...
leetcode 和 oj 二和 编写一个函数,该函数接受一组数字(用于测试的整数)和一个目标数字。 它应该在数组中找到两个不同的项目,当它们相加时,给出目标值。...基于:twoSum [1, 2, 3] 4 === (0, 2)