Постановка задачи
Учитывая массив целых чисел, вернуть индексы двух чисел так, чтобы они складывались до заданной c цели.
Вы можете Предположим, что у каждого входа будет только одно решение, и вы не можете использовать один и тот же элемент дважды.
Проблема:
Я пытаюсь реализовать алгоритм для этой проблемы, используя hashmap. Это первый раз, когда я использую хэш-карту, и я узнаю об этом. Я не уверен, почему я получаю следующую ошибку. Эта проблема из кода Leet. Заранее спасибо.
Line 10: Char 35: fatal error: invalid operands to binary expression ('int' and 'std::pair<const int, int>')
if((target - nums[i]) == *umap.find(key))
Код
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
// key would be the element value would be the complement
vector<int> sol;
unordered_map<int,int> umap;
for(int i=0; i<nums.size(); i++)
{
int key = nums[i];
if((target - nums[i]) == umap.find(key)) {
sol.push_back(i);
sol.push_back(umap[i]);
} else {
umap[nums[i]] = i;
cout << umap[nums[i]]<< endl;
}
}
return sol;
}
};