1. 程式人生 > >JavaScript實現——兩數之和

JavaScript實現——兩數之和

題目

給定整數的一個數組,找出這樣的兩個數,他們的加和等於一個特定的目標數字(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);