Conditions | 9 |
Paths | 22 |
Total Lines | 24 |
Code Lines | 17 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
9 | public static function duplicateZeros(array & $arr): void |
||
10 | { |
||
11 | if (empty($arr)) { |
||
12 | return; |
||
13 | } |
||
14 | $cnt = 0; |
||
15 | foreach ($arr as $num) { |
||
16 | if ($num === 0) { |
||
17 | $cnt++; |
||
18 | } |
||
19 | } |
||
20 | [$m, $n] = [count($arr), count($arr) + $cnt]; |
||
21 | for ($i = $m - 1, $j = $n - 1; $i < $j; $i--, $j--) { |
||
22 | if ($arr[$i] !== 0) { |
||
23 | if ($j < $m) { |
||
24 | $arr[$j] = $arr[$i]; |
||
25 | } |
||
26 | } else { |
||
27 | if ($j < $m) { |
||
28 | $arr[$j]= $arr[$i]; |
||
29 | } |
||
30 | $j--; |
||
31 | if ($j < $m) { |
||
32 | $arr[$j] = $arr[$i]; |
||
33 | } |
||
58 |