কম্পিউটার

C++ এ সাজানো অ্যারের বর্গক্ষেত্র


সাজানো পূর্ণসংখ্যার প্রদত্ত অ্যারেতে, কাজটি হল প্রতিটি অ্যারের উপাদানের স্কোয়ারগুলি প্রিন্ট করা এবং সাজানো ক্রমে অ্যারেটি প্রিন্ট করা। উদাহরণস্বরূপ,

ইনপুট-1

arr[ ] = { -3,-1,0,1,4,6 };

আউটপুট

{0,1,1,9,16, 36}

ব্যাখ্যা − প্রদত্ত অ্যারের [-3, -1,0,1,4,6] প্রতিটি উপাদানের বর্গ হল [0,1,1,9,16,36]৷

ইনপুট-2

arr[ ]= { 0,1,2,8,9 }

আউটপুট

{0,1,4,64,81}

ব্যাখ্যা − প্রদত্ত অ্যারের প্রতিটি উপাদানের বর্গ [ 0,1,2,8,9 ] হল [ 0,1,4,64,81]৷

এই সমস্যা সমাধানের পদ্ধতি

এই বিশেষ সমস্যা সমাধানের জন্য, আমরা দুই-পয়েন্টার পদ্ধতি ব্যবহার করতে পারি। টু-পয়েন্টারে আমরা বাম এবং ডানে দুটি পয়েন্টার ব্যবহার করি। বাম পয়েন্টারটি অ্যারের প্রথম উপাদানের সাথে শুরু হয় এবং ডান পয়েন্টারটি অ্যারের শেষ উপাদানটির দিকে নির্দেশ করে৷

অ্যারের উপাদানগুলির উপর পুনরাবৃত্তি করার সময় আমরা মানের বর্গ খুঁজে বের করব এবং ডান পূর্ণসংখ্যার বর্গটি বাম পূর্ণসংখ্যার চেয়ে বড় বা কম কিনা তা পরীক্ষা করব৷

  • ক্রমবর্ধমান ক্রমে পূর্ণসংখ্যার একটি অ্যারে ইনপুট নিন।

  • একটি পূর্ণসংখ্যা ফাংশন squareAndSort(int *arr, int n) পূর্ণসংখ্যার একটি অ্যারে হিসাবে ইনপুট নেয় এবং একটি সাজানো পদ্ধতিতে অ্যারের প্রতিটি উপাদানের বর্গ ফেরত দেয়।

  • অ্যারের বাম উপাদান এবং ডানদিকের উপাদান দিয়ে বাম এবং ডানে দুটি পয়েন্টার শুরু করুন৷

  • উপাদানটির বর্গক্ষেত্রটি প্রিন্ট করুন এবং সঠিক উপাদানটির বর্গক্ষেত্রের সাথে তুলনা করুন।

  • সেই অনুযায়ী বাম এবং ডান পয়েন্টার বৃদ্ধি এবং হ্রাস করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
vector<int> squareAndSort(vector<int>&arr){
   int left= 0;
   int right= arr.size()-1;
   vector<int>vec;
   while(left<=right){
      while(left <= right) {
         int v1 = arr[left]*arr[left];
         int v2 = arr[right]*arr[right];
         if(v1 <= v2) {
            vec.push_back(v2);
            right--;
         }
         else {
            vec.push_back(v1);
            left++;
         }
      }
      reverse(vec.begin(), vec.end());
   }
   return vec;
}
int main(){
   vector<int>arr= {-3,-1,0,1,4,6};
   vector<int>ans= squareAndSort(arr);
   for(auto x:ans){
      cout<<x<<" ";
   }
   return 0;
}

আউটপুট

উপরের কোডটি চালানোর ফলে আউটপুট তৈরি হবে,

0 1 1 9 16 36

অ্যারের প্রতিটি উপাদানের বর্গ হল, 9,1,0,1,16,36। এই উপাদানগুলি সাজানোর পরে, আউটপুট হবে 0 1 1 9 16 36৷


  1. C++ এ একটি সাজানো অ্যারেতে পরম স্বতন্ত্র গণনা?

  2. C++ স্ট্রিং এর অ্যারে

  3. C++ এ সাজানো হচ্ছে

  4. সাজানো অ্যারে বাস্তবায়নের জন্য C++ প্রোগ্রাম