// 双指针模式
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