<!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>