力扣——第1题(C++)

B站讲的很好的老师:

【从零开始刷力扣学C++——两数之和】 https://www.bilibili.com/video/BV1tU1TYpEJL/?share_source=copy_web&vd_source=bb58b6e3e5f53973729fd5b59301b3dd

题目

知识点:

1.vector容器:

2.引用

3.哈希表

哈希表详解:

https://blog.csdn.net/qq_60831089/article/details/131465770?fromshare=blogdetail&sharetype=blogdetail&sharerId=131465770&sharerefer=PC&sharesource=weixin_63090013&sharefrom=from_link

题解:

暴力解

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

哈希表

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int,int> hashtable;//创建哈希表,名称为hashtable
        int len=nums.size();
        for( int i=0;i<len;i++ ){
            auto it = hashtable.find( target - nums[i] );//迭代器it指向target - nums[i]
            if( it!=hashtable.end() ){
                //元素存在
                return { it->second , i };//it->second指向元素对应的下标
            }
            //元素不存在,则存入哈希表
            hashtable.insert( { nums[i] , i } );
        }
        return {};
    }
};

#开工第一帖##如果不上班,你会去做什么##硬件开发岗知多少##应届生被毁约被毁意向了怎么办##面试___岗的必刷题单#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务