LeetCode1两数之和
题目:
给定一个整数数列,找出其中和为特定值的那两个数。
你可以假设每个输入都只会有一种答案,同样的元素不能被重用。
示例:
给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
分析:
可以直接遍历两遍数组,第一遍用target-nums[i],第二遍找nums数组中是否存在target-nums[i]这个数字,找到就返回两个数字组成的数组,这个方法时间复杂度比较大为O(n²)
还有可以用哈希表先把数组中的数字和对应的下标存储一遍,即数字作为键,下标作为值,存储,当遍历数组的时候用target-nums[i],得到差k,然后在map中找是否存在 k,找到即返回k所对应的value,也就是所对应的数组下标。这样时间复杂度就为O(n+l),快了好多。
代码:
//普遍方法O(n²)
class Solution {public int[] twoSum(int[] nums, int target) {int[] result = new int[2];for (int i = 0; i < nums.length; i++) {int v = target - nums[i];for (int j = 0; j < nums.length; j++) {if (nums[j] == v && j != i){result[0] = i;result[1] = j;return result;}}}return result;}
}
//哈希表存储查找
class Solution {public int[] twoSum(int[] nums, int target) {int[] result = new int[2];Map<Integer,Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++)map.put(nums[i],i);for (int i = 0; i < nums.length; i++) {int v = target - nums[i];if (map.containsKey(v) && i != map.get(v)){result[0] = i;result[1] = map.get(v);return result;}}return result;}
}
注意:
需要注意会错的是要判断一下上面代码中i的值和你找到的数组下标值是否相同,比如{3,2,4} target = 6, 会不会出现返回 0 0 这种错。
LeetCode1两数之和相关推荐
- LeetCode1. 两数之和
LeetCode1. 两数之和 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应 ...
- LeetCode1.两数之和
LeetCode1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你 ...
- 从leetcode1. 两数之和循序渐进(双指针,BST,哈希表)
leetcode1. 两数之和 1.之前只知道桶排序那种标志数组,所以看到第一眼就想到那个方面去了.但在本题数组里面存储某个数出现的次数对该题是没有意义的,应该存储某个数出现的位置. 2.哈希表是优化 ...
- LeetCode1——两数之和
最近在家拧三阶魔方,把初级的玩法掌握了,也就是可以还原六个面了,速度不快,但是也很兴奋.三阶魔方的初级玩法按照套路拧就可以了,每一步需要完成的任务,该步骤转动的方法基本都是固定的,而且变化也并不是特别 ...
- leetcode1. 两数之和--每天刷一道leetcode系列!
来自:程序员面试 作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们 ...
- leetcode中文版python_Python版LeetCode1.两数之和
啦啦啦,欢迎开启LeetCode刷题的旅程,这将是一段漫长而又艰辛的旅程.这道Two Sum的题目作为LeetCode的开篇之题,乃是经典中的经典,正所谓'平生不识TwoSum,刷尽LeetCode也 ...
- leetcode1 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...
- LeetCode-1两数之和
给定一个整数数组 nums 和一个整数目标值 target, 请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案. 但是,数组中同一个元素在答 ...
- LeetCode-1.两数之和(哈希表)
题目内容 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 给定一个整数数组 nums 和一个整数目标值 target,请你在该数 ...
最新文章
- 有趣的HTML5/CSS3艺术网站
- python中列表的sort方法_python中列表的sort方法使用详解
- Visual Studio Code里关于ESLint的错误消息
- date日期 和 date时间拼接_函数周期表丨时间丨值丨DATE
- 放弃 802.11 命名方式,Wi-Fi 6 标准公布,速度快 37%
- LeetCode刷题——64. 最小路径和
- 多元函数的泰勒展开Talor以及黑塞矩阵
- element ui的el-option需要默认
- Pyhon 登陆邮箱
- Pt100铂电阻与惠斯通电桥
- 宣传一个非常好看的鼠标指针样式
- android后台进程数目限制
- 加拿大 计算机硕士 哪个学校 便宜,加拿大计算机硕士成功案例1(学生成绩中)...
- elasticsearch7.6 词频统计
- 图片色值提取工具-Color Hunter
- 【数据结构PTA 7-158-161】
- mac修改默认python版本_Mac系统修改Python版本软链接
- python计算移动平均线_(转)简单移动平均线(Simple Moving Average,SMA) 定义及使用...
- 闪压压缩解压软件官方版
- python是什么邮箱_python发邮件详解,smtplib和email模块详解
热门文章
- digg bt_使用Digg REST API
- CruiseControl简介
- 常用的4种动态网页技术
- java base64 svg转png_svg转成png并下载
- [floyed][叉积][距离公式](JZOJ)泽泽在巴西
- 如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证
- Threatbook合伙人李秋石:具有中国特色的安全威胁情报
- Linux zcat分页查看,Linux zcat初学者命令教程(5个示例)
- 元宇宙产品有哪些 元宇宙社交平台
- JAVA中JSON序列化和反序列化