How to check if the last index of an array is reachable by jumping based on element values from index 0 in C

1 Answer

0 votes
#include <stdio.h>
#include <stdbool.h>

bool canReachLastIndex(int arr[], int size) {
    int 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;
}

int main(void) {
    int arr[] = {2, 3, 1, 1, 4};
    int size = sizeof(arr) / sizeof(arr[0]);

    if (canReachLastIndex(arr, size)) {
        printf("Yes, we can reach the last index.\n");
    } else {
        printf("No, we cannot reach the last index.\n");
    }

    return 0;
}



/*
run:

Yes, we can reach the last index.

*/

 



answered Dec 1, 2025 by avibootz

Related questions

...