sourcecode

Sunday, February 8, 2015

Two Sum

class Solution {
public:
    vector twoSum(vector &numbers, int target) {
        vector n2 = numbers;
        std::sort(n2.begin(), n2.end());
        for (int ii = 0; ii < n2.size(); ++ii) {
            int subTarget = target - n2[ii];
            bool subFound = std::binary_search(n2.begin()+ii+1, n2.end(), subTarget);
            if (subFound) {
                vector result;
                for(int jj = 0; jj < numbers.size(); ++jj) {
                    if (numbers[jj] == n2[ii] || numbers[jj] == subTarget) result.push_back(jj+1);
                }
                return result;
            }
        }
        return vector(2,0);
    }
};

No comments: