Skip to content

每日一题 - duplicate

信息卡片

  • 时间:2019-07-22
  • tag:Array

题目描述

完成duplicate函数,  使之功能复合duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
完成duplicate函数,  使之功能复合duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]

参考答案

js
function duplicate(list) {
  const len = list.length;
  for (let i = len; i < len * 2; i++) {
    list[i] = list[i - len];
  }
  return list;
}
function duplicate(list) {
  const len = list.length;
  for (let i = len; i < len * 2; i++) {
    list[i] = list[i - len];
  }
  return list;
}

扩展

完成 duplicate 函数, 使之功能复合 duplicate([1,2,3,4,5]); // [1,1,2,2,3,3,4,4,5,5]
完成 duplicate 函数, 使之功能复合 duplicate([1,2,3,4,5]); // [1,1,2,2,3,3,4,4,5,5]

参考代码:

js
function duplicate(list) {
  let slow = list.length - 1;
  let fast = list.length * 2 - 1;
  let cnt = 0;

  while (slow < fast) {
    list[fast] = list[slow];
    if (cnt % 2 === 1) {
      slow--;
    }
    fast--;
    cnt++;
  }
  return list;
}
function duplicate(list) {
  let slow = list.length - 1;
  let fast = list.length * 2 - 1;
  let cnt = 0;

  while (slow < fast) {
    list[fast] = list[slow];
    if (cnt % 2 === 1) {
      slow--;
    }
    fast--;
    cnt++;
  }
  return list;
}