কম্পিউটার

C++ তে পরবর্তী ক্রমবর্ধমান


ধরুন আমাদের একটি পূর্ণসংখ্যা অ্যারে আছে, আমাদের কাজ হল প্রদত্ত অ্যারের সমস্ত সম্ভাব্য ক্রমবর্ধমান অনুক্রমগুলি খুঁজে বের করা, এবং একটি ক্রমবর্ধমান অনুক্রমের দৈর্ঘ্য কমপক্ষে 2 হওয়া উচিত। তাই যদি অ্যারেটি [4,6,7,7' এর মত হয় ], তাহলে আউটপুট হবে − [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7] , 7], [7,7], [4,7,7]]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি অ্যারে সংজ্ঞায়িত করুন, যাকে বলা হয় সকল ফলাফল সঞ্চয় করতে রেস
  • সলভ নামে একটি পদ্ধতি তৈরি করুন। এটি nums অ্যারে, স্টার্ট এবং টেম্প অ্যারে নিয়ে যাবে
  • যদি temp এর সাইজ> 1 হয়, তাহলে টেম্প res এ ঢোকান
  • ভিজিটেড নামে একটি সেট তৈরি করুন
  • আমি পরিসীমার জন্য সংখ্যার আকার শুরু করি
    • x :=সংখ্যা[i]
    • যদি x পরিদর্শন করা সেটে থাকে, তাহলে লুপের পরবর্তী অংশটি এড়িয়ে যান
    • ভিজিট করা সেটে x ঢোকান
    • যদি temp খালি হয় বা temp <=x এর শেষ উপাদান হয়, তাহলে
      • টেম্পে x ঢোকান
      • কল সমাধান (সংখ্যা, i + 1, টেম্প)
      • টেম্পের শেষ থেকে একটি উপাদান মুছুন
  • মূল পদ্ধতি থেকে, কল সমাধান (সংখ্যা, 0, টেম্প)
  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include  namespace ব্যবহার করে std;void print_vector(vector> v){ cout <<"["; for(int i =0; i> res; অকার্যকর সমাধান (ভেক্টর  এবং সংখ্যা, int শুরু, ভেক্টর  টেম্প){ if(temp.size()> 1){ res.push_back(temp); } সেট  পরিদর্শন করা হয়েছে; for(int i =start; i > সাবসকোয়েন্স খুঁজুন(ভেক্টরএন্ড সংখ্যা) { res.clear(); ভেক্টর  temp; সমাধান (সংখ্যা, 0, তাপমাত্রা); রিটার্ন রেস; }};প্রধান(){ ভেক্টর v ={5,6,7,8}; সমাধান ob; print_vector(ob.findSubsequences(v));}

ইনপুট

[4,6,7,8]

আউটপুট

<প্রে>[[5, 6, ], [5, 6, 7, ], [5, 6, 7, 8, ], [5, 6, 8, ], [5, 7, ],[5, 7, 8, ], [5, 8, ], [6, 7, ], [6, 7, 8, ], [6, 8, ], [7, 8, ],]
  1. C++ এ উপসেট II

  2. C++ তে যোগফল II

  3. 3সমষ্টি C++ এর সবচেয়ে কাছাকাছি

  4. C++ এ কম্বিনেশন