力扣——第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 {};
    }
};

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

相关推荐

zbk1:学院本找嵌入式我觉得不太行,不要被培训班忽悠了,老老实实读个研吧。
点赞 评论 收藏
分享
我做了一个开源的电商数据模拟平台(非科班转数据工程)最近把自己做了几个月的项目整理开源了,想记录一下整个过程。我是广告学背景,大二开始转向数据工程方向。一开始学习数仓、Hive、SQL&nbsp;时,很快遇到一个特别现实的问题:没有数据。很多教程默认数据已经存在,但真正自己练习时发现:-&nbsp;培训班给的数据太简单-&nbsp;没有真实业务流程-&nbsp;很难做数仓分层练习-&nbsp;ETL、建模基本练不起来当时的感受就是:学的东西很多,但没有可以真正动手的数据。---第一阶段:用&nbsp;MySQL&nbsp;硬模拟数据(踩坑阶段)最开始我直接用&nbsp;MySQL&nbsp;写&nbsp;SQL&nbsp;生成数据。大概折腾了一个多月:-&nbsp;用笛卡尔积拼用户、订单数据-&nbsp;一批一批&nbsp;insert-&nbsp;不断调&nbsp;SQL结果非常痛苦:-&nbsp;SQL&nbsp;极其复杂-&nbsp;数据关系难维护-&nbsp;插入&nbsp;10&nbsp;万订单还能忍-&nbsp;想生成&nbsp;100&nbsp;万订单时数据库经常直接卡死或超时那时候我第一次意识到:数据库适合查询数据,但不适合生成复杂业务数据。---第二阶段:改用&nbsp;Python&nbsp;重写模拟器后来我把整个逻辑改成&nbsp;Python。体验直接发生变化:-&nbsp;数据规模可以自由控制-&nbsp;业务逻辑可以写成代码-&nbsp;订单生命周期可以真实模拟-&nbsp;生成速度比&nbsp;SQL&nbsp;快很多当时甚至有点无语:早知道就不该用&nbsp;SQL&nbsp;硬写一个月&nbsp;😂写完后我已经能随便生成数据做数仓练习了。但新的问题出现了:每次都要改参数、跑脚本。于是我开始想:能不能把它做成一个网站?---第三阶段:把模拟器做成&nbsp;Web&nbsp;平台后来开始学习&nbsp;FastAPI,把模拟器做成&nbsp;Web&nbsp;控制台。目标很简单:-&nbsp;不写代码也能生成数据-&nbsp;点一下按钮就能出数据-&nbsp;参数可配置-&nbsp;可以重复实验于是就有了现在的&nbsp;Web&nbsp;UI。---第四阶段:从个人工具到开源项目在自学过程中我越来越确定一件事:很多数据工程初学者真正缺的不是教程,而是:可用的数据。所以我决定把这个项目开源。它从:个人学习脚本→&nbsp;数据模拟工具→&nbsp;可公开使用的平台慢慢演化出来。---第五阶段:加入&nbsp;Docker&nbsp;一键运行后来又发现一个问题:很多人环境装不起来。于是又加了&nbsp;Docker。现在基本可以做到:docker&nbsp;run&nbsp;data-sim直接启动。---为什么做这个项目因为我自己经历过:学数仓的时候,没有数据真的很难受。如果这个项目能帮到后来的人,那它就有意义了。GitHub(欢迎交流):https://github.com/learner2638/ecommerce-data-simulator
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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