1. 每日一题
-
- 用map 存数组中下标和元素值
-
- 遍历数组,寻找 target-num[i]
-
- 如果能找到 即返回 index, 并每次把num[i],i 加入map中
// 给定数组 和 一个 target 如果数组中存在两个数之和等于target 则返回这两个数的下标组成的vec
// input: vec = [1, 2, 4, 7] target = 9 output: [1, 3]
#include <vector>
#include <unordered_map>
vector<int>& addTwoNum(vector<int>& num, int target){
unordered_map<int, int> map;
int n = num.size();
for(int i = 0; i < n; i++){
int temp = target - num[i];
if(map.find(temp)!=map.end()){
return {map[temp], i};
}
map[num[i]] = i;
}
return {};
}