1.两数之和(leetcode-1)
1.题目描述(简单难度)
2.解法1(暴力枚举法)
思路:用两层for循环得到数组中所有两个数的组合,等于目标值即返回这两个数的下标
代码:
class Solution {public:vector<int> twoSum(vector<int>& nums, int target) {int len = nums.size()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 {};}
};
时间复杂度:两层for循环 O(n²)
空间复杂度:O(n)
解法2(哈希表)
思路:第一种方法的时间复杂度比较高的原因是使用了两层for循环,我们肯定会想能不能用一层for循环解决这个问题呢?
这个时候就要用到hashtable了,首先我们创建一个hashtable,键值分别为nums[i],i,遍历nums数组中的元素,如果在hashtable中存在target - nums[i],则返回查找到的下标和i,若不存在则把当前遍历到的nums[i]和i作为键值对添加到hashtable中,这样只需遍历一次就可以得到两个值为target的下标值了。
代码:
class Solution {public:vector<int> twoSum(vector<int>& nums, int target) {int len = nums.size();unordered_map <int,int> hashtable;for(int i = 0;i < len;i++){auto it = hashtable.find(target - nums[i]);if(it != hashtable.end())return {it->second,i};hashtable[nums[i]] = i;}return {};};
};
时间复杂度:一层for循环 O(n)
空间复杂度:创建hash表开销 O(n)
提示:这里用到了以空间换时间的思想
1.两数之和(leetcode-1)相关推荐
- 1.两数之和-LeetCode
目录 一.问题描述 二.解题思想 三.解题 1.判断极端情况 2.代码实现 一.问题描述 这里直接采用的LeetCode上面的问题描述. 给定一个整数数组 nums 和一个整数目标值 target,请 ...
- 两数之和(LeetCode)
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是, ...
- 两数之和(LeetCode)——哈希表法(C语言)
上一篇文章留了个引子--用"哈希表"法来解决这个问题. 今天,我们来解决一下.为什么用哈希表法?很简单因为它--快! 讲解之前我们先来提出几个问题? 1)什么是"哈希表& ...
- 用php求两数之和,Leetcode PHP 两数之和
友情提示:此篇文章大约需要阅读 1分钟43秒,不足之处请多指教,感谢你的阅读. 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的 ...
- 力扣(leetcode)-1. 两数之和
描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组 ...
- LeetCode题库第1题 两数之和
两数之和 LeetCode题库第1题 两数之和 看到题,我就想到了暴力法: public int[] force(int[] nums,int target) {for (int i = 0; i & ...
- 【LeetCode】两数之和、三数之和、四数之和系列
文章目录 两数之和★ 三数之和★★ 四数之和★★ 四数相加Ⅱ★★ 最接近的三数之和★★ 此篇文章总结下力扣中的两数之和.三数之和.四数之和及一系列求数组中满足达到目标值的元组个数的问题,仔细阅读下面的 ...
- java 1099_【LeetCode(Java) - 1099】小于 K 的两数之和
[LeetCode(Java) - 1099]小于 K 的两数之和 [LeetCode(Java) - 1099]小于 K 的两数之和 文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 ...
- Leetcode刷题第1题:两数之和(基于Java语言)
** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...
- 【前端来刷LeetCode】两数之和与两数相加
大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...
最新文章
- 服务器oracle11g卸载,卸载Oracle11g步骤详解
- mybaits十三:使用collection分布查询
- 透过认知智能剖析商业本质(iPIN CEO杨洋)丨硬创公开课
- 【目标检测】RCNN算法详解
- Linux中常用到的命令
- cmd命令启动mysql服务
- OpenCV极线epipolar lines的实例(附完整代码)
- Spring 核心和容器的一般更新
- 【常用模板】 01背包
- GBDT和LR结合使用分析
- win10死机频繁怎么解决
- URI Is Not Registered
- vue elementui表单清空前一次的数据
- 人工智能的变革趋势: 从弱人工智能到强人工智能,再到生物智能
- 不收费的数据恢复软件好用吗?数据丢失这样恢复
- 2023成都理工大学计算机考研信息汇总
- Python学习笔记4---类和对象
- App inventor打地鼠
- 远程控制桌面,外网电脑PC手机ios安卓mac远程桌面连接内网linux和windows主机,史上最全最详细图文教程
- matlab根据根求多项式,matlab求解多项式的根
热门文章
- django配置文件
- linux自动备份mysql数据库,并删除几天前数据库备份
- [转]自定义UITableView各种函数
- 游戏动画中欧拉角与万向锁的理解
- JavaScript43种常见的浏览器兼容性问题大汇总
- 阿里天池大赛实战记录之菜鸟-需求预测与分仓规划
- 使用Telnet客户端测试Exchange邮件收发
- __flash__removeCallback 未定义错误
- 打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用
- [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.