Я работаю над проблемами Leetcode и хочу использовать хеш-таблицу или std::unordered_map
для хранения значений после каждой итерации.Исходя из того, что я прочитал, это должно быть так же просто, как сказать hash[key] = value
.Однако компилятор Leetcode выдает исключение std::out_of_range
из _Map_base::at()
.
Вот мой код:
#include <unordered_map>
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
std::unordered_map<int,int> hashMap;
vector<int> result;
for(int i = 0; i < nums.size(); i++)
{
if(hashMap.count(target-nums[i]) > 0)
{
result.push_back(hashMap.at(target-nums[i]));
result.push_back(hashMap.at(nums[i]));
}
else
hashMap[nums[i]] = i;
}
return result;
}
};