ভূমিকা
একটি অ্যারে এবং একটি ইন্ডেক্স k দেওয়া থাকলে, অ্যারেটিকে k পজিশন বাম দিকে রোটেট (left rotate) করতে হবে। এক্সট্রা স্পেস ব্যবহার না করে এবং O(n) টাইম কমপ্লেক্সিটিতে।
উদাহরণ
ইনপুট: arr[] = {1,2,3,4,5}, K1=1, K2=3, K3=6
আউটপুট:
K1: 2 3 4 5 1
K2: 4 5 1 2 3
K3: 2 3 4 5 1 (6 % 5 = 1)
এলগরিদম
void leftRotate(int arr[], int n, int k)
শুরু
cal = k % n
i = 0 থেকে n-1 পর্যন্ত:
arr[(cal + i) % n] প্রিন্ট করুন
শেষ
C++ প্রোগ্রাম উদাহরণ
#includeusing namespace std; void leftRotate(int arr[], int n, int k) { int cal = k % n; for (int i = 0; i < n; i++) cout << arr[(cal + i) % n] << " "; cout << "\n"; } int main() { int a[] = {1, 2, 3, 4}; int size = sizeof(a) / sizeof(a[0]); leftRotate(a, size, 1); leftRotate(a, size, 2); leftRotate(a, size, 3); return 0; }
আউটপুট
2 3 4 1 3 4 1 2 4 1 2 3