美文网首页
有序数组合并

有序数组合并

作者: Ag_fronted | 来源:发表于2021-06-17 14:06 被阅读0次

1、两个有序数组合并(产生新数组)

function combineSortedArr(arr1, arr2) {
  const newArr = [];
  while (arr1.length && arr2.length) {
    if (arr1[0] >= arr2[0]) {
      newArr.push(arr2[0]);
      arr2.shift();
    } else {
      newArr.push(arr1[0]);
      arr1.shift();
    }
  }
  if (arr1.length) {
    newArr.push(...arr1);
  } else if (arr2.length) {
    newArr.push(...arr2);
  }
  return newArr;
}

console.log(combineSortedArr([1, 2, 5, 7, 8], [3, 4, 6, 7]));

2、两个有序数组合并(返回原来某个数组)

function combineSortedArr(arr1, arr2) {
  let i = 0;
  while (arr2[0]) {
    if (arr2[0] < arr1[i]) {
      arr1.splice(i, 0, arr2[0]);
      arr2.shift();
    } else if (arr2[0] >= arr1[arr1.length - 1]) {
      arr1.push(...arr2);
      arr2 = [];
    } else {
      i++;
    }
  }
  return arr1;
}

console.log(combineSortedArr([1, 2, 5, 6, 7], [1, 2, 3, 4, 9]));```

相关文章

网友评论

      本文标题:有序数组合并

      本文链接:https://www.haomeiwen.com/subject/rmrcyltx.html