All submissions

Reverse an Array In-Place

Code

#include <stdio.h>

// Helper to reverse a subarray from index 'start' to 'end'
void reverse(int a[], int start, int end) {
    while (start < end) {
        int temp = a[start];
        a[start] = a[end];
        a[end] = temp;
        ++start;
        --end;
    }
}

void rotate_left(int a[], int n, int k) {
    if (n == 0 || k <= 0) return;
    k = k % n; // In case k > n

    // Step 1: Reverse first k elements
    reverse(a, 0, k - 1);

    // Step 2: Reverse the rest
    reverse(a, k, n - 1);

    // Step 3: Reverse the entire array
    reverse(a, 0, n - 1);
}

int main() {
    int n;
    scanf("%d", &n);

    int arr[100];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    reverse_array(arr, n);

    for (int i = 0; i < n; i++) {
        printf("%d", arr[i]);
        if(i < n-1){
        	printf(" ");
        }
    }
    return 0;
}

Solving Approach

 

 

 

Loading...

Input

5 1 2 3 4 5

Expected Output

5 4 3 2 1