Leetcode||1. Two Sum

先存map里再查找。
时间复杂度O(n)。

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        map<int,int>m;
        int len=nums.size();
        std::vector<int> v;
        if(len<2)return v;
        for(int i=0;i<len;i++)
        {
            m[nums[i]]++;
        }

        for(int i=0;i<len;i++)
        {
            int tmp=target-nums[i];
            if((tmp!=nums[i]&&m[tmp]==1)||(tmp==nums[i]&&m[tmp]>1))
            {
                v.push_back(i);
            }
        }
        return v;
    }
};

猜你喜欢

转载自blog.csdn.net/sinat_35205772/article/details/52650901