Leetcode 1:两数之和
写在前面
Leetcode 社区挺神奇的,近几年火热程度不亚于开源社区github。做题一直以来是咱们亚洲人的强项,咋这香馍馍也被美国硅谷抢先了,着实香菇。
企于算法工程师的江湖地位和薪资福利,决定先等等再细读具体数学,时间有限,编程汗颜!
Leetcode开始撸,看看大量做题后,算法和编程是否能有飞跃。以下题解纯属个人输出,如有雷同,那就是英雄所见略同。
2021/12/26
1. 两数之和
/** @lc app=leetcode.cn id=1 lang=cpp** [1] 两数之和*/// @lc code=start
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {//the container of outputvector<int> ans;//hash table stores values have already scanned//key of the store is value,value of the store is index//search for index by value unordered_map<int,int> store;int size=nums.size();//one iteration can slove questionfor(int i=0;i<size;++i){int remainder= target-nums[i];if(store.count(remainder)){//existsans.push_back(store[remainder]);ans.push_back(i);break;}else{//non-existsstore[nums[i]]=i;}}return ans;}
};
关键信息:
数组中同一个元素不能在答案中出现两次
任意顺序返回答案
甚至
每次输入只对应一个答案
所有的信息指向哈希表,那么哈希表key-value该存储些什么呢
按逻辑,数组中每一对数都可能是一次输入的返回答案,那么对数组的处理一定是遍历。
返回答案是数组下标,条件是两个元素和等于target。很显然,哈希表的key可以是元素值,value则是关注的元素下标。
对于插入哈希表的数而言,程序期望的是知道与target的剩余数是否已经存在。可以看成每个数都要去哈希表里找伙伴,和伙伴一起去平分target这个派,发现没有在一块的伙伴,他就去哈希表里等着后面的伙伴去找他,因为遍历过程就是让后面找前面的。
时间复杂度:只利用了一次遍历,O(n)。
空间复杂度:哈希表需要存储遍历过的数,O(n)。
从今天起,浩浩荡荡的刷题大军里又多了一个”考生”。忽然又想起了《考死》,打算有空重刷下。
Leetcode 1:两数之和相关推荐
- [leetcode]1.两数之和
[leetcode]1.两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应 ...
- [hashmap|空间换时间] leetcode 1 两数之和
[hashmap|空间换时间] leetcode 1 两数之和 1.题目 题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下 ...
- C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组
C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在 ...
- LeetCode 1. 两数之和
LeetCode 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入 ...
- 【前端来刷LeetCode】两数之和与两数相加
大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...
- leetCode:twoSum 两数之和 【JAVA实现】
LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...
- 力扣(leetcode)-1. 两数之和
描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组 ...
- LeetCode 01两数之和02两数相加
力扣 LeetCode01两数之和 LeetCode02两数之加 前言:第一次LeetCode打卡题解,前面组织的打卡活动从今天开始正式开始了,很多csdn和公众号小伙伴以及加入了,欢迎加入!详细看力 ...
- Leetcode 1. 两数之和 (Python版)
有粉丝说我一个学算法的不去做Leetcode是不是浪费,于是今天闲来没事想尝试一下Leetcode,结果果断翻车,第一题没看懂,一直当我看到所有答案的开头都一样的时候,我意识到了我是个铁憨憨,人家是让 ...
- 【LeetCode】两数之和
package leetcode.editor.cn;//给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. // // 你可 ...
最新文章
- python如何编程-编程零基础应当如何开始学习 Python?
- php 网页截屏,怎么用PHP实现网页截图
- QString与LPCWSTR互转
- linux ssh基本
- Polly的7种策略
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
- const 和readonly
- java多客户端请求响应_Java实现服务器端对多个客户端请求响应
- 笔记72 高级SSM整合
- 团队协助 开源项目_5分钟了解 Vtiger CRM-国际知名开源客户管理软件
- IIS------IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
- 大数据技术之Hive(四)函数、压缩和存储
- 侯捷C++八部曲笔记(二、STL标准库和泛型编程)
- 速卖通正式推出全托管,卖家竞争进入新阶段
- [笔记] GPGPU-SIM的使用说明(一)
- Android应用接入第三方登录之新浪登录
- ping 192.168.1.1-t命令有什么用?是什么意思?
- Switch开关按钮js
- taro tabBar的设置,设置tabbar的文字,设置tabbar的图标
- 剖析系统虚拟化(2)- X86虚拟化技术
热门文章
- 数仓建模主题--事件归因分析主题
- 小飞鱼通达二开 企业微信与通达OA的另一种集成方式(图文)
- yoloV5-6.2分类训练记录
- 三星s8是否支持html,三星S8+对于PD兼容性的测试
- PS·web前端切图(详细)
- 985研究生入职电网6个月,晒出收入,还以为看错了,kafka实战pdf
- Vite(三)部署静态站点(wordpress与hugo与Vercel、CI/CD、Travis CI、GitLab CI)、环境变量与模式、服务端渲染(SSR)
- 项目上线,旧数据需要修改,写SQL太麻烦,看Excel配合简单SQL的强大功能
- PCIE协议解析 synopsys IP Power Management Capability 读书笔记(10)
- 数据库设计(结构化设计方法)——学生考试管理系统