移动 0 到数组的末尾

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动 0 到数组的末尾相关的知识,希望对你有一定的参考价值。

定义一个函数,将数组种所有的 `0` 都移动到末尾

例如输入 `[1, 0, 3, 0, 11, 0]` 输出 `[1, 3, 11, 0, 0, 0]`。要求:

- 只移动 `0` ,其他数字顺序不变

- 考虑时间复杂度

- 必须在原数组就行操作

如果不限制“必须在原数组修改”

- 定义 `part1` `part2` 两个空数组

- 遍历数组,非 `0` push 到 `part1` ,`0` push 到 `part2`

- 返回 `part1.concat(part2)`

时间复杂度 `O(n)` 空间复杂度 `O(n)` ,

传统方式

思路

- 遍历数组

- 遇到 `0` 则 push 到数组末尾

- 然后用 splice 截取掉当前元素

/**
 * 移动 0 到数组的末尾(嵌套循环)
 * @param arr number arr
 */
export function moveZero1(arr: number[]): void 
    const length = arr.length
    if (length === 0) return

    let zeroLength = 0

    // O(n^2)
    for (let i = 0; i < length - zeroLength; i++) 
        if (arr[i] ==&

以上是关于移动 0 到数组的末尾的主要内容,如果未能解决你的问题,请参考以下文章

移动 0 到数组的末尾

在python中将所有零移动到数组的末尾

leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置

将第一个元素移动到数组末尾的最快方法

将一组数组向右移动k位,末尾的要转置移动到数组开始,其中n为数组大小,0<k<n

2021-10-31:移动零。给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]。输出: [1,3,12,0,0]。说