Javascript已经排好序的数组,如何能快速找出a+b=8的所有组合的下标

Posted 时光游弋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript已经排好序的数组,如何能快速找出a+b=8的所有组合的下标相关的知识,希望对你有一定的参考价值。

使用哈希表实现,可以降时间复杂度降到O(n)


 1     function twoSum(arr, target) {
 2         let mapObj = {}
 3         let result = []
 4         arr.forEach((v, i) => mapObj[v] = i)
 5         for (let i =0 ; i < arr.length; i++) {
 6           let j = mapObj[target - arr[i]]
 7           if (j && j > i) {
 8             result.push([i, j])
 9           }
10         }
11         return result
12       }
13       let arr =  [1, 3, 5, 7, 9, 10]
14       console.log(twoSum(arr, 8))

 

 

 

以上是关于Javascript已经排好序的数组,如何能快速找出a+b=8的所有组合的下标的主要内容,如果未能解决你的问题,请参考以下文章

如何按字母升降序排序数组?

有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序

合并两个已经排好序的不等长的数组

插入排序算法分析

手握5家大厂offer!java有一个已经排好序的数组

第22题有一个已经排好序的数组