DM
Size: a a a
DM
А
DM
function solve(A, B) {my best approach
var arr = [...A.map(x => ({ value: x, type: 'a' })), ...B.map(x => ({ value: x, type: 'b' }))]
arr.sort((a, b) => a.value - b.value)
var result = {}
var aa = []
var b = null
for (let x of arr) {
if (x.type === 'a') {
aa.push(x.value)
} else {
for (let a of aa) {
result[a] = { a, left: b, right: x.value }
}
aa.length = 0
b = x.value
}
}
for (let a of aa) {
result[a] = { a, left: b, right: null }
}
return result
}
DM
O(logn)
на сортировку, потом за один проход составляем результатDM
MG
p
DM
MG
j
P
РБ
РБ
P
P
DM
MG