给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字。
要求:这个函数twoSum必须要返回能够相加等于目标数字的两个数的索引,且index1必须要小于index2。请注意一点,你返回的结果(包括index1和index2)都不是基于0开始的。
你可以假设每一个输入肯定只有一个结果。
举例:
输入:numbers={2, 7, 11, 15}, target = 9
输出:index1 = 0 index2 =1
vector twoSum(vector& nums, int target) {
unordered_map imap;
for (int i = 0;; ++i) {
auto it = imap.find(target - nums[i]);
if (it != imap.end())
return vector<int> {i, it->second};
imap[nums[i]] = i;
}
}
想问为何是在最后面给map赋值?
在if前面赋值会报错
先要判断迭代器是否到达了imap的最后位置,否则i会越界