Drill

ProblemsJavaScript › data

Interleave two lists

easydataJavaScript

Two queues for two registers are interleaved so every other customer comes from each.

alternatingMerge(first: list<int>, second: list<int>) → list<int>

Solve it in the editor →

Where you start

function alternatingMerge(first, second) {
  
}

Worked examples

CallResult
alternatingMerge([1,2,3], [9])[1,9,2,3]
alternatingMerge([1], [4,5])[1,4,5]
alternatingMerge([1,2], [3,4])[1,3,2,4]
alternatingMerge([], [1,2])[1,2]

Hint

Loop up to the longer length and take each element that still exists.

Reference solution in JavaScript
function alternatingMerge(first, second) {
  const result = [];
  const n = Math.max(first.length, second.length);
  for (let i = 0; i < n; i++) {
    if (i < first.length) result.push(first[i]);
    if (i < second.length) result.push(second[i]);
  }
  return result;
}

The same problem in another language

More data problems in JavaScript