function canReachLastIndex(array $arr): bool {
$size = count($arr);
$currentIndex = 0;
while ($currentIndex < $size) {
// If we reach the last index, return true
if ($currentIndex == $size - 1) {
return true;
}
// If jump goes out of bounds, stop
if ($currentIndex + $arr[$currentIndex] >= $size) {
return false;
}
// Move to the next index by jumping
$currentIndex += $arr[$currentIndex];
}
return false;
}
function main() {
$arr = [2, 3, 1, 1, 4];
if (canReachLastIndex($arr)) {
echo "Yes, we can reach the last index.\n";
} else {
echo "No, we cannot reach the last index.\n";
}
}
main();
/*
run:
Yes, we can reach the last index.
*/