知识点
哈希表
思路
从左到右遍历,用哈希表记录下每个数出现的最左端的位置。每次找target-当前数的数是否存在,存在则更新答案。
时间复杂度
AC Code(C++)
#include <unordered_map> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param info int整型vector * @param target_weight int整型 * @return int整型vector */ vector<int> findWeightRelation(vector<int>& info, int target_weight) { unordered_map<int, int> mp; int n = info.size(); vector<int> res = {-1, -1}; for (int i = 0; i < n; i ++) { int t = target_weight - info[i]; if (mp.count(t)) { if (res[0] == -1 or mp[t] < res[0]) res = {mp[t], i + 1}; } else mp[info[i]] = i + 1; } return res; } };