কম্পিউটার

C++ এ K দ্বারা বামে তালিকা ঘোরান


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে। আমাদের এমন একটি পদ্ধতি নির্ধারণ করতে হবে যা 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, ]

  1. C++ এ একটি লিঙ্কযুক্ত তালিকা সমতল করা

  2. C++ এ একটি তালিকায় অনুপস্থিত পারমুটেশন

  3. অক্ষরগুলির একটি দ্বিগুণ লিঙ্কযুক্ত তালিকা প্যালিনড্রোম কিনা তা পরীক্ষা করুন C++ এ নয়

  4. C++ এ স্ট্র্যান্ড সাজান