最直观的方法是两次扫描数组,判断target-array[i]是否存在数组中。这样做的时间复杂度是O(n^2)。
如何保存之前的处理结果?可以使用hash table "target - array[i]是否存在数组中。
vector<int> addsToTarget(vector<int>& numbers,int target)
{unordered_map<int,int> numToIndex;vector<int> vi(2);for(auto it = numbers.begin(); it != numbers.end(); it++){if(numToIndex.count(target - *it)){vi[0] = numToIndex[target - *it] + 1;vi[1] = (int)(it - numbers.begin()) + 1;return vi;}numToIndex[*it] = (int)(it - numbers.begin());}
}