#include <stdio.h>
void rotateLeft(int arr[], int n, int d) {
if (d == 0 || d == n) return; // no rotation needed
int temp[d];
// Store first d elements
for (int i = 0; i < d; i++) {
temp[i] = arr[i];
}
// Shift remaining elements to the left
for (int i = d; i < n; i++) {
arr[i - d] = arr[i];
}
// Place stored elements at the end
for (int i = 0; i < d; i++) {
arr[n - d + i] = temp[i];
}
}
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
printf("%d", arr[i]);
if (i != n - 1) printf(" -> ");
}
printf(" -> null\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int d = 2;
rotateLeft(arr, n, d);
printArray(arr, n);
return 0;
}
if (d == 0 || d == n) return; // no rotation needed
skip rotation if d is zero or equal to array size
for (int i = 0; i < d; i++) { temp[i] = arr[i]; }
save first d elements temporarily
for (int i = d; i < n; i++) { arr[i - d] = arr[i]; }
shift elements left by d positions
for (int i = 0; i < d; i++) { arr[n - d + i] = temp[i]; }
put saved elements at the end
3 -> 4 -> 5 -> 1 -> 2 -> null