另一种实现方式

来源:2-5 把一个数组旋转 k 步-代码演示和单元测试

huen2013638874

2022-11-03

/**

  • 旋转数据 k 步 - 使用 splice 和 unshift

  • @param arr arr

  • @param k k

  • @returns arr
    */
    export function rotate3(arr: number[], k: number): number[] {
    const length = arr.length;
    if (!k || length === 0) return arr;
    const step = Math.abs(k % length); // abs 取绝对值

    arr.unshift(…arr.splice(length - step, step))
    return arr;
    }

    arr.unshift(…arr.splice(length - step, step))
    批量将后面的一组数据删除,然后将删除的一组数据批量在前面插入。

写回答

1回答

双越

2022-11-03

数组 unshift 复杂度是 O(n)

0
1
huen2013638874
非常感谢!unshift插入始终是O(n)
2022-11-03
共1条回复

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1509 学习 · 642 问题

查看课程