找出一个数组中和为 n 的两个数
来源:2-18 找出一个数组中和为 n 的两个数-嵌套循环不是最优解
慕斯卡7246137
2022-03-08
两数之和为n的问题,面试这样写能行吗
var arr = [1, 2, 4, 7, 11, 15]
function searchTwo(arr, n) {
let len = arr.length;
let map = new Map()
for (let i = 0; i < len; i++) {
if (map.has(arr[i])) {
return [arr[map.get(arr[i])], arr[i]]
} else {
map.set(n - arr[i], i)
}
}
}
searchTwo(arr, 15)
写回答
2回答
-
Charles_So_网页开发
2022-04-04
这方法我做了性能测试比对,比较慢。
我猜是map哈希表的读取、写入和访问比较慢,所以拖了性能的后腿。
00 -
双越
2022-03-08
首先,你要能跑通单元测试,跑通了就没问题。
然后,你这样写会导致空间复杂度为 O(n) ,要知道这一点。
00
相似问题