object JumpArray {
def canReachLastIndex(arr: Array[Int]): Boolean = {
val size = arr.length
var 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)
}
false
}
def main(args: Array[String]): Unit = {
val arr = Array(2, 3, 1, 1, 4)
if (canReachLastIndex(arr)) {
println("Yes, we can reach the last index.")
} else {
println("No, we cannot reach the last index.")
}
}
}
/*
run:
Yes, we can reach the last index.
*/