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的所有组合的下标的主要内容,如果未能解决你的问题,请参考以下文章