这篇帖子是记录本人从2022年12月30日开始系统力扣刷题之旅,故开贴和专栏记录刷题之旅。
该题很明显暴力是n方时间复杂度,排序也需要nlogn,而哈希表的单次存取是O(1),最后复杂度也只是O(n)级别,因此该题我们采取哈希表的做法:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int>heap;
for(int i = 0;i < nums.size();i ++)
{
int r = target - nums[i];
if(heap.count(r)) return {heap[r],i};
heap[nums[i]] = i;
}
//这行不会执行的在这题,但是不返回系统会报错
return {};
}
};