码迷,mamicode.com
首页 > 其他好文 > 详细

1. 两数之和

时间:2020-06-01 01:06:46      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:href   pre   mic   second   find   空间   空间复杂度   code   没有   

题目描述

leetcode - 1:https://leetcode-cn.com/problems/two-sum/

技术图片

解题关键

  • hashmap的使用

碎碎念

题目比较简单,暴力过很容易,不过借助hash可以降低时间复杂度,但是增加了空间的消耗。学习了hashmap的使用 key:value

  • 定义 map<int, int> mArr,第一个是key的类型,第二个是value的类型 mArr[key] = value
  • 其中map的 find 方法在找不到的情况下,通过 .end() 来判断有没有找到 mArr.find(x)!=mArr.end()
  • map的 mArr.find(x) 方法得到的是一个 迭代器 ,通过 ->first 得到 key->second 得到 value

代码

  • 时间复杂度O(N)
  • 空间复杂度O(N)
    vector<int> twoSum(vector<int>& nums, int target) {
        map<int, int> mArr;    
        int i=0;
        for(i=0;i<nums.size();i++){
            mArr[nums[i]]=i;
        }
        for(i=0;i<nums.size();i++){
            if(mArr.find(target-nums[i])!=mArr.end() && i!=mArr.find(target-nums[i])->second)
                return {i,mArr.find(target-nums[i])->second};
        }
        return {};
    }

1. 两数之和

标签:href   pre   mic   second   find   空间   空间复杂度   code   没有   

原文地址:https://www.cnblogs.com/baboon/p/13022376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!