Zbędne obliczanie długości tablicy w pętli w PHP

Niech będzie dana pewna tablica z liczbami:

php<?php
  $arr = [1, 2, 3, 4, 5];
?>

Sprawmy, aby każdy element tablicy został podniesiony do kwadratu. To znaczy, że powinna pozostać ta sama tablica $arr, ale z kwadratami liczb.

W takim przypadku pętla foreach nie pasuje, a potrzebna jest zwykła pętla for po tablicy, o tak:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  for ($i = 0; $i < count($arr); $i++) {
    $arr[$i] = $arr[$i] * $arr[$i]; // zmieniamy każdy element tablicy
  }
  
  var_dump($arr);
?>

Co jest nie tak z tym kodem? Problem w tym, że count($arr) będzie bezsensownie obliczane w każdej iteracji pętli! A po co, przecież długość tablicy w pętli się nie zmienia, prawda?

Dla optymalizacji wyniesiemy obliczenie długości tablicy do oddzielnej zmiennej:

php<?php
  $arr = [1, 2, 3, 4, 5];
  $len = count($arr); // optymalizujemy
  
  for ($i = 1; $i < $len; $i++) {
    $arr[$i] = $arr[$i] * $arr[$i];
  }
  
  var_dump($arr);
?>
Задание 1

Zoptymalizuj podany poniżej kod:

php<?php
  $arr = [1, 2, 2, 4, 5];
  
  for ($i = 1; $i < count($arr); $i++) {
    if ($arr[$i - 1] === $arr[$i]) {
      echo $arr[$i] . '<br>';
    }
  }
?>