ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে। আমাদের এমন একটি পদ্ধতি নির্ধারণ করতে হবে যা k উপাদান দ্বারা সংখ্যার তালিকাকে বাম দিকে ঘোরাতে পারে।
সুতরাং, যদি ইনপুট হয় [5,4,7,8,5,6,8,7,9,2], k =2, তাহলে আউটপুট হবে [8,5, ৬,৮,৭,৯,২,৫,৪,৭]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি অ্যারে ret সংজ্ঞায়িত করুন
-
n :=সংখ্যার আকার
-
k :=k mod n
-
আরম্ভ করার জন্য i :=k, যখন i
-
ret-এর শেষে nums[i] সন্নিবেশ করুন
-
-
আরম্ভ করার জন্য i :=0, যখন i
-
ret-এর শেষে nums[i] সন্নিবেশ করুন
-
-
রিটার্ন রিটার্ন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v) {
cout << "[";
for (int i = 0; i < v.size(); i++) {
cout << v[i] << ", ";
}
cout << "]" << endl;
}
class Solution {
public:
vector<int> solve(vector<int>& nums, int k) {
vector <int> ret;
int n = nums.size();
k %= n;
for(int i = k; i < n; i++){
ret.push_back(nums[i]);
}
for(int i = 0; i < k; i++){
ret.push_back(nums[i]);
}
return ret;
}
};
main(){
Solution ob;
vector<int> v = {5,4,7,8,5,6,8,7,9,2};
print_vector(ob.solve(v, 3));
} ইনপুট
{5,4,7,8,5,6,8,7,9,2}, 2 আউটপুট
[8, 5, 6, 8, 7, 9, 2, 5, 4, 7, ]