কম্পিউটার টিউটোরিয়াল

C++-এ ডানে থাকা সর্বোচ্চ উপাদান দিয়ে প্রতিটি উপাদান রিপ্লেস করা


ধরুন আমাদের একটি অ্যারে A আছে। আমাদের প্রতিটি উপাদানকে তার ডানে থাকা সর্বোচ্চ উপাদান দিয়ে রিপ্লেস করতে হবে। এবং লাস্ট উপাদানটিকে -1 দিয়ে রিপ্লেস করতে হবে। তাই যদি A = [5, 17, 40, 6, 3, 8, 2] হয়, তবে এটি হবে [40,40,8,8,8,2,-1]

এটি সমাধানের জন্য, আমরা নিচের ধাপগুলো অনুসরণ করব −

  • আমরা অ্যারে এলিমেন্টগুলো ডানে থেকে বামে পড়ব।
  • e := -1 নিন
  • for i := n – 1 to 0
    • temp := e
    • e := e এবং array[i]-এর মধ্যে সর্বোচ্চ
    • array[i] := temp
  • return array

উদাহরণ

বুঝতে নিচের ইমপ্লিমেন্টেশনটি দেখুন −

#include <bits/stdc++.h> using namespace std; void print_vector(vector<int> v){    cout << "[";       for(int i = 0; i<v.size(); i++){          cout << v[i] << ", ";       }       cout << "]"<<endl; } class Solution {    public:       vector<int> replaceElements(vector<int>& arr) {          int rep = -1;          int n = arr.size();          for(int i = n - 1; i >= 0; i--){             int temp = rep;             rep = max(rep, arr[i]);             arr[i] = temp;          }          return arr;       } }; main(){    Solution ob;    vector<int> c = {5,17,40,6,3,8,2};    print_vector(ob.replaceElements(c)) ; }

ইনপুট

[5,17,40,6,3,8,2]

আউটপুট

[40,40,8,8,8,2,-1]

  1. C++-এ লিংকড লিস্টে আربیট্রারি পয়েন্টারকে ডান পাশের সর্বোচ্চ মান যুক্ত নোডে নির্দেশ করা

  2. C++ STL-এ সেট ব্যবহার করে ডানপাশের ছোট এলিমেন্ট গণনা

  3. C++-এ বাইনারি ট্রির ডান দিক থেকে দৃশ্য (Binary Tree Right Side View)

  4. C++ অপারেটর প্রেসিডেন্স এবং অ্যাসোসিয়েটিভিটি