<script type="text/javascript">
function find(nums , target){
var cache = [];
for (var i = 0; i < nums.length; i++){
var half1 = nums[i];
var half2 = target - half1;
var j = cache[half2];
if (j != undefined){
return [j , i]
}
cache[half1] = i;
}
return [];
}
var result = find([1,2,5,3,4] , 9)
console.log(result)
</script>
容易想到的方法是两层for循环,但是那样效率很低,因此,使用稀疏数组把数组第i位内容与数组下标互换。