两数之和
两数之和
- 问题描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
- 代码
- 方法一: 执行用时:132 ms
1
2
3
4
5
6
7
8for(let i=0 ; i<nums.length ; i++){
k = i;
for(let j=i+1 ; j<nums.length; j++){
if(nums[k]+nums[j] == target){
return [k , j]
}
}
} - 方法二:执行用时:56 ms
1
2
3
4
5
6
7
8
9
10
11
12var map = new Map();//Map是一组键值对的结构
for(var i=0; i<nums.length ; i++){
//设置键值对:map.set(key , value)
map.set(nums[i],i);
}
for(var j=0; j<nums.length; j++){
//map.has()返回布尔值,查询key是否在当前对象中
//map.get()获取key对应的键值,若没有则返回undefined
if(map.has(target-nums[j])&&map.get(target-nums[j])!=j){
return [j,map.get(target - nums[j])];
}
}
- 方法一: 执行用时:132 ms
本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Charles's Blog!