每日一道算法题,坚持成长

1.两数之和(简单难度)

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

解题思路

利用数组存储差值的索引位来减少一次遍历,降低时间复杂度为O(n);

解法:

var twoSum = function(nums, target) {
let i = 0;
let temp = [];
while (i < nums.length) {
let num = target - nums[i];
if(temp[num] != undefined) {
return [temp[num],i];
}
temp[nums[i]] = i
i ++;
}
};


#陌陌##笔试题目#
全部评论
坚持学习
24 回复
分享
发布于 2020-10-26 14:34
每天一小步 时间长了才能看得到的变化
24 回复
分享
发布于 2020-10-26 14:37
联想
校招火热招聘中
官网直投
var twoSum = function(nums, target) {     var list = [];     for(var i=0;i<nums.length;i++){         let a = target - nums[i];         if(list[a] != undefined){             return [list[a],i]         }         list[nums[i]] = i;     } };
24 回复
分享
发布于 2020-10-26 14:37
楼主随时可以内推  请查看楼主内推帖子
18 回复
分享
发布于 2020-10-29 16:12
顶一下
9 回复
分享
发布于 2021-03-04 14:15
继续顶帖 坚持成长
9 回复
分享
发布于 2021-03-04 14:21
加油
8 回复
分享
发布于 2020-10-26 14:39
学习
6 回复
分享
发布于 2020-10-26 20:40
学习到了
5 回复
分享
发布于 2020-10-27 16:28
挺好
5 回复
分享
发布于 2020-10-28 12:06
学习
4 回复
分享
发布于 2020-10-29 13:30
很好
4 回复
分享
发布于 2020-10-30 13:20
你真厉害
4 回复
分享
发布于 2020-10-30 14:09
向你学习 加油加油加油
3 回复
分享
发布于 2020-10-30 17:56
厉害楼主
2 回复
分享
发布于 2020-10-30 19:18
很棒
2 回复
分享
发布于 2020-10-30 23:22
你真厉害
2 回复
分享
发布于 2020-10-31 07:09
加油
2 回复
分享
发布于 2020-10-31 12:05
加油楼主
1 回复
分享
发布于 2020-10-31 20:55

相关推荐

头像
03-18 09:09
Java
点赞 评论 收藏
转发
23 22 评论
分享
牛客网
牛客企业服务