经典算法 — 两数之和
题目描述
- 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
/**
* @param {number []} nums
* @param {number} target
* @return {number []}
*/
var twoSum = function(nums, traget) {
var map = new Map()
for(let i in nums) {
if(map.get(traget - nums[i])) {
return [map.get(traget - nums[i]), i]
} else {
map.set(nums[i], i)
}
}
return []
}
- 结论
两数之和首先是双遍历(O(n * n))。
也可以遍历两次,第一次是把数组变成一个对象(key是数值,value是下标)。然后在遍历一次(O(2 * n))
本次结果是用一次遍历,满足则返回,不满足责放入map集合中
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。