LeetCode.1 (soma de dois números) - simples
-
Dado um número inteiro da matriz e um alvo do valor alvo, encontre os dois inteiros cuja soma é o valor alvo na matriz e retorne o índice da matriz. Você pode assumir que cada entrada corresponderá apenas a uma resposta. No entanto, o mesmo elemento na matriz não pode ser usado duas vezes.
Exemplos:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
-
Código:
//2020_04_17 class Solution { public: vector<int> twoSum(vector<int> &nums, int target) { vector<int> res{0, 0}; //结果容器 unordered_map<int, int> um; //哈希表(值,下标) for (int i = 0; i < nums.size(); i++) //遍历容器元素 { auto it = um.find(target - nums[i]); //查找另一个元素 if (it != um.end()) //如果找到 { res[0] = it->second; //输出其下标 res[1] = i; //输出当前遍历的元素下标 return res; //返回 } um[nums[i]] = i; //没找到则将该元素加入哈希表 } return res; } };
-
O resultado: