This solution is generated by ChatGPT, correctness is not guaranteed.
AI solution for JavaScript Coding Question on BFE.dev
81. merge sorted arrays
One possible solution with a time complexity of O(n log n) is:
function merge(arrays) {
let result = [];
// Merge each pair of adjacent arrays
while (arrays.length > 1) {
let merged = [];
let a = arrays.shift();
let b = arrays.shift();
let i = 0;
let j = 0;
while (i < a.length && j < b.length) {
if (a[i] <= b[j]) {
merged.push(a[i]);
i++;
} else {
merged.push(b[j]);
j++;
}
}
while (i < a.length) {
merged.push(a[i]);
i++;
}
while (j < b.length) {
merged.push(b[j]);
j++;
}
arrays.push(merged);
}
// Concatenate the remaining arrays
result = arrays[0] || [];
for (let i = 1; i < arrays.length; i++) {
result = result.concat(arrays[i]);
}
return result;
}
The solution uses a loop to repeatedly merge pairs of adjacent arrays into a single larger array until there is only one array remaining. This takes O(log n) iterations, where n is the number of input arrays.
Inside each iteration, we perform a merge of two arrays, which takes O(n) time, where n is the total number of elements in the two arrays.
Finally, we concatenate the remaining arrays, which takes O(n) time, where n is the total number of remaining elements.
Overall, the time complexity of this solution is O(n log n).