JavaScript實現——兩數之和
阿新 • • 發佈:2019-02-13
題目
給定整數的一個數組,找出這樣的兩個數,他們的加和等於一個特定的目標數字(target)。
- 輸入:numbers={2,7,11,15},target=9
- 輸出:index=1,index=2
解析
js中的物件是基於雜湊表結構的,而雜湊表的查詢時間複雜度為O(1)。
在所給陣列中查詢依次查詢與當前值所對應的目標值是否存在,如果存在則記錄當前index值。
function towSum(arrNum, target) {
var vector = new Array();
var mapArr = arrNum;
for (var i = 0; i < mapArr.length; i++) {
var curIndex = mapArr.indexOf(descGet(target, arrNum[i]))
if (mapArr.includes(descGet(target, arrNum[i])) && curIndex > i) {
vector.push(i);
vector.push(curIndex);
}
}
alert(typeof mapArr);
}
function descGet(num1, num2) {
return num1 - num2 >= 0 ? num1 - num2 : -1;
}
var arr = [2, 7, 11, 15];
towSum(arr, 9);