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

C++-এ সর্বোচ্চ সুনির্দিষ্ট বর্ধমান সাবসিকোয়েন্স (Longest Continuous Increasing Subsequence)

একটি পূর্ণসংখ্যার অ্যারে দেওয়া আছে। আমাদের সর্বোচ্চ দৈর্ঘ্যের সুনির্দিষ্ট বর্ধমান সাবঅ্যারে (continuous increasing subarray) বের করতে হবে।

ইনপুট [2,4,6,5,8] হলে আউটপুট ৩। কারণ সর্বোচ্চ সুনির্দিষ্ট বর্ধমান সাবসিকোয়েন্স [2,4,6], দৈর্ঘ্য ৩।

সমাধানের ধাপসমূহ

  • যদি nums.size() <= 1 হয়, nums.size() রিটার্ন করুন
  • answer := 1, count := 1
  • প্রতিটি i এর জন্য:
    • যদি nums[i] < nums[i+1] হয়, count++, answer := max(answer, count)
    • অন্যথায় count := 1
  • answer রিটার্ন করুন

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        if (nums.size() <= 1)
            return nums.size();
        int answer = 1, count = 1;
        for (int i = 0; i < nums.size() - 1; i++) {
            if (nums[i] < nums[i + 1]) {
                count++;
                answer = max(answer, count);
            }
            else {
                count = 1;
            }
        }
        return answer;
    }
};
int main(){
    Solution ob;
    vector<int> v = {2,4,6,5,8};
    cout << (ob.findLengthOfLCIS(v));
}

ইনপুট

{2,4,6,5,8}

আউটপুট

3
  1. C++-এ Number of Longest Increasing Subsequence

  2. C++ প্রোগ্রাম: লংগেস্ট কমন সাবসিকোয়েন্স (LCS)

  3. C++ প্রোগ্রাম: দিয়ে गये সিকোয়েন্স থেকে লংগেস্ট ইনক্রিজিং সাবসিকোয়েন্স খুঁজে বের করা

  4. পাইথনে Longest Increasing Subsequence (সর্বাধিক দীর্ঘ বর্ধমান সাবসিকোয়েন্স)