欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【剑指offer】面试题57:和为s的两个数字

程序员文章站 2024-03-04 10:46:29
...

【剑指offer】面试题57:和为s的两个数字

方法一:哈希表查找

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int,int> record;
        vector<int> result;
        for( int i = 0; i < nums.size(); i++ )
        {
             record[ nums[i] ] = i;
        }
        for(int i = 0; i <nums.size(); i++)
        {
            if( record.find(target - nums[i]) != record.end() )
            {
                result.push_back(nums[i]);
                result.push_back( nums[ record[ target - nums[i] ]] );
                return result;
            }
        }
        throw invalid_argument("no solution");
    }
};