leetcode 两数之和 暴力或哈希

    科技2022-07-11  115

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

    通过次数1,436,320 提交次数2,897,172 在真实的面试中遇到过这道题?

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


    这是今天的每日一题,如今读完题目就想到哈希表O(n)即可
    看到两年前的代码,好丑的代码,自己都觉得好笑 >_<
    不由得感慨时光飞逝,但却没有技术爆炸,
    这是菜的抠脚啊,

    class Solution { public: vector<int> twoSum(vector<int>& a, int m) { unordered_map<int,int> mp; for(int i=0; i<a.size(); i++) { int sub = m - a[i]; if(mp[sub]) { return {mp[sub]-1, i}; } mp[a[i]] = i + 1; // printf("[%d %d]\n", sub, mp[sub]); } return { }; } };
    Processed: 0.010, SQL: 8