字节 - 将数组的0移动到最后

// 双指针模式
let arr = [0, 1, 0, 5, 13];

function moveZero(arr) {
    let left = 0,
        right = 0;
    while (right < arr.length - 1) { // arr.length - 1 = 4
        right++
        if (arr[left] === 0 && arr[right] !== 0) { // 左边是0 右边不是0 交换位置
            let temp = arr[left]
            arr[left] = arr[right]
            arr[right] = temp
            left++
        }
        console.log(`left:${left} right: ${right}`)
    }
    return arr
}

console.log(moveZero(arr));
[0,1,0,5,13] left = 0; right=0;

[1,0,0,5,13] left = 1; right = 1;

[1,0,0,5,13] left = 1; right = 2;

[1,5,0,0,13] left = 2, right = 3

[1,5,13,0,0] let = 3, right = 4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容