import Foundation
func canReachLastIndex(_ arr: [Int]) -> Bool {
let size = arr.count
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]
}
return false
}
func main() {
let arr = [2, 3, 1, 1, 4]
if canReachLastIndex(arr) {
print("Yes, we can reach the last index.")
} else {
print("No, we cannot reach the last index.")
}
}
main()
/*
run:
Yes, we can reach the last index.
*/