TYM042
两数之和
发布时间:2022-09-20
作者:yaming042
阅读量:- 次
本文字数:3.8k
阅读时长 ≈ 3 分钟
原题
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例
1 | 输入:nums = [2,7,11,15], target = 9 |
提示
- 2 <= nums.length <= 104
- -109 <= nums[i] <= 109
- -109 <= target <= 109
- 只会存在一个有效答案
解法一
简单粗暴的循环遍历即可,优点就是逻辑简单,缺点就是有些人会感觉有点low
解法二
借鉴网上的解题思路,借用map(或者object)就行
- 准备个object(数据结构{value: index}, value是数组中的值,index是值对应的下标)
- 遍历数组,判断target- num[i]的值是否存在object中,如果存在那么就可以返回对应的下标,否则继续遍历(同时将值记录到object中),直至结束,返回异常
实现代码
1 | const numberSum = (arr=[], target) => { |
注意:
- 其实这里用map或者object的原因就是为了记录index,如果只是返回对应的值,那用array来记录值也行
- 需要对入参的合法性进行判断
- 函数里面需要做边界判断,目前并没有做