美文网首页whocares
【剑指 offer】和为S的两个数字

【剑指 offer】和为S的两个数字

作者: 邓泽军_3679 | 来源:发表于2019-05-08 17:14 被阅读0次

    1、题目描述

    输入一个数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。

    如果有多对数字的和等于s,输出任意一对即可。

    你可以认为每组输入中都至少含有一组满足条件的输出。

    样例:

    输入:[1,2,3,4] , sum=7
    输出:[3,4]

    2、问题描述:

    3、问题关键:

    • 建立一个hash表,hash.count(target - nums[i]), 表示找到了一对,那么直接返回,否则将hash.insert(nums[i]).

    4、C++代码:

    class Solution {
    public:
        vector<int> findNumbersWithSum(vector<int>& nums, int target) {
            unordered_set<int> hash;
            for (int i = 0; i < nums.size(); i ++) {
                if (hash.count(target - nums[i])) return vector<int> {target - nums[i], nums[i]};
                hash.insert(nums[i]);
            }
            return vector<int> ();
        }
    };
    

    相关文章

      网友评论

        本文标题:【剑指 offer】和为S的两个数字

        本文链接:https://www.haomeiwen.com/subject/ybsvoqtx.html