另一种实现方式
来源: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回答
-
数组 unshift 复杂度是 O(n)
012022-11-03
相似问题