You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript求解targetArrayInGivenOrder问题的实现方法

JavaScript 实现 targetArrayInGivenOrder 问题解法

题目规则

实现一个接收两个整数数组参数nums和index的函数,按规则返回构造完成的目标数组:

  • 初始时目标数组target为空
  • 从左到右依次读取nums[i]和index[i],将值nums[i]插入到target数组的index[i]索引位置
  • 所有元素处理完成后返回最终的target数组

实现逻辑

JavaScript数组原生提供的splice方法原生支持指定位置插入元素的能力:

  • 调用格式为target.splice(插入索引, 0, 待插入值)
  • 第二个参数传0代表不删除原有元素,仅执行插入操作,插入位置后方的元素会自动后移
  • 若传入的插入索引大于当前数组长度,元素会自动追加到数组末尾,无需额外做边界判断

完整代码

function createTargetArray(nums, index) {
  const target = [];
  const len = nums.length;
  for (let i = 0; i < len; i++) {
    target.splice(index[i], 0, nums[i]);
  }
  return target;
}

复杂度说明

  • 时间复杂度:O(n²),数组插入操作需要移动插入位置后的所有元素,最坏场景下总移动操作次数为n(n-1)/2
  • 空间复杂度:O(1),除返回结果数组外,仅使用常数级额外变量

运行示例

// 用例1
createTargetArray([0,4,1,2,3], [0,1,2,3,4]) // 返回 [0,4,1,2,3],匹配题目参考示例1输出
// 用例2
createTargetArray([1,2,3,4,0], [0,1,2,3,0]) // 返回 [0,1,2,3,4]

注:题目给出的示例2参考输出存在笔误,代码严格遵循题目描述的插入规则实现,运行结果与规则完全一致。

内容的提问来源于stack exchange,提问作者عمر شاهر حسن قطام

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:09:18