Find a pair of elements from an array whose sum equals a given number

后端 未结 30 1044
暗喜
暗喜 2020-11-22 10:14

Given array of n integers and given a number X, find all the unique pairs of elements (a,b), whose summation is equal to X.

The following is my solution, it is O(nLo

30条回答
  •  隐瞒了意图╮
    2020-11-22 10:47

    C++11, run time complexity O(n):

    #include 
    #include 
    #include 
    
    std::vector> FindPairsForSum(
            const std::vector& data, const int& sum)
    {
        std::unordered_map umap;
        std::vector> result;
        for (size_t i = 0; i < data.size(); ++i)
        {
            if (0 < umap.count(sum - data[i]))
            {
                size_t j = umap[sum - data[i]];
                result.push_back({data[i], data[j]});
            }
            else
            {
                umap[data[i]] = i;
            }
        }
    
        return result;
    }
    

提交回复
热议问题