<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
问题: 给定一个数组例如[1,3,4,6,7] ,再给定一个目标数,例如9。 写一个算法找出两个数他们相加等于目标数,返回他们在数组中的位置。给出一个解即可,同一个数字不能使用2次。
比如[1,3,4,6,7] 目标数为9,那么需要返回[1,3]。如果目标数为20,返回null。
</body>
<script type="text/javascript">
//要求 target = x + y
//即 x = target - y;
function func(arr,target){
var obj = {};
for(var i = 0; i < arr.length; i++){
var item = arr[i];
if(obj[item] === undefined){
var x = target - item;
obj[x] = i;
}else{
return [obj[item],i];
}
}
return null;
}
console.log(func([1,3,7,6,9,11],9))
</script>
</html>