LeetCode: 1. Two Sum

LeetCode: 1. Two Sum

后面会补上之前刷过却没写题解的题目。

题目描述

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

解题思路

map 记录数值和索引的关系,在遍历 nums 时, 查找之前是否出现过 target - nums[i]

AC 代码

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> numIdxMap;
        for(size_t i = 0; i < nums.size(); ++i)
        {
            if(numIdxMap.find(target - nums[i]) != numIdxMap.end())
            {
                return {numIdxMap[target-nums[i]], i};
            }

            numIdxMap[nums[i]] = i;
        }
        return {};
    }
};
全部评论

相关推荐

07-21 18:43
门头沟学院 Java
是暑期都招满了吗
ANEOY:今年感觉真是后端地狱级难度了,从暑期就是这样,前端需求非常大
点赞 评论 收藏
分享
码砖:求职岗位要突出,一眼就能看到,教育背景放到最后,学校经历没那么重要,项目要重点突出
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务