1.两数之和

出错的地方


  • leetcode中不能在if语句中return,要在函数的结尾return
  • 本题要注意自身和自身相加之后等target的情况,先找target-num[i],如果没有再存num[i]

收获


  • map、vector的使用

代码


class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) 
    {
        map<int,int> mymap;
        vector<int> ans;
        
        if(nums.size() < 2)
        {
            ans.push_back(-1);
            ans.push_back(-1);
            return ans;
        }
        
        for(int i = 0;i<nums.size();i++)
        {
            if(mymap.count(target - nums[i]) == 1)
            {
                ans.push_back(i);
                ans.push_back(mymap[target - nums[i]]);
                break;
            }
            mymap[nums[i]] = i;
        }
        return ans;
    }
};
posted @ 2019-03-20 16:00  isLiuhy  阅读(112)  评论(0编辑  收藏  举报