日野弥生:勉強しよう
LeetCode 1 - 两数之和
发表于2024年12月26日
暴力求解法的时间复杂度自然是O(n^2),但是因为本题强调的两数的和与目标值相等,可以考虑哈希结构去除掉一次遍历。利用map把目标值和当前值的索引作为key和value。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
std::map<int,int> targetMap;
for(int i=0;i<nums.size();i++)
{
if(targetMap.count(nums[i])>0)
return {i,targetMap[nums[i]]};
targetMap.insert({target-nums[i], i});
}
return {};
}
};