思路分析
循环数组,计算0的数量,如果数组内元素不为0则跟前面的0进行交换
$arr = [0,14,9,1,4,6,-3,2,0,99,13,20,0,17,15,3,0];
//方法一
function moveZeroes1($nums)
{
$zeroNum = 0;
$numsSize = count($nums);
for ($i = 0; $i
if ($nums[$i] == 0) {
$zeroNum++;
} else {
if ($zeroNum != 0) {
$nums[$i - $zeroNum] = $nums[$i];
$nums[$i] = 0;
}
}
}
return $nums;
}
print_r(moveZeroes1($arr));
//方法二
function moveZeroes2($nums)
{
$j = 0;
$numsSize = count($nums);
for ($i = 0; $i
if ($nums[$i] != 0) {
$nums[$j++] = $nums[$i];
}
}
while ($j
$nums[$j++] = 0;
}
return $nums;
}
print_r(moveZeroes2($arr));