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

সর্বোচ্চ যোগফলযুক্ত ক্রমবর্ধমান সাবসিকোয়েন্স

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

ধরি এমন একটি অ্যারে আছে যা সর্বোচ্চ যোগফলযুক্ত ক্রমবর্ধমান সাবসিকোয়েন্স সংরক্ষণ করবে, بحيث L[i] হল array[i]-তে শেষ হওয়া সর্বোচ্চ যোগফলযুক্ত ক্রমবর্ধমান সাবসিকোয়েন্স।

ইনপুট এবং আউটপুট

ইনপুট: পূর্ণসংখ্যাগুলোর সিকোয়েন্স।
{3, 2, 6, 4, 5, 1}

আউটপুট: সর্বোচ্চ যোগফলযুক্ত ক্রমবর্ধমান সাবসিকোয়েন্স।
{3, 4, 5}

অ্যালগরিদম

maxSumSubSeq(array, n)

ইনপুট: সংখ্যাগুলোর সিকোয়েন্স, উপাদান সংখ্যা।
আউটপুট: ক্রমবর্ধমান সাবসিকোয়েন্সের সর্বোচ্চ যোগফল।

শুরু
  subSeqLen নামক অ্যারে-অফ-অ্যারে সংজ্ঞায়িত করুন আকার n
  arr[0] কে subSeqLen-এ যোগ করুন
  i := 1 থেকে n-1 পর্যন্ত রেঞ্জে, করুন
    j := 0 থেকে i-1 পর্যন্ত রেঞ্জে, করুন
      যদি arr[i] > arr[j] এবং subSeqLen[i]-এর যোগফল < subSeqLen[j]-এর যোগফল হয়, তবে
        subSeqLen[i] := subSeqLen[j]
    শেষ
  শেষ
  arr[i] কে subSeqLen[i]-এ যোগ করুন
  res := subSeqLen[0]
  subSeqLen-এর সকল মান জন্য, করুন
    যদি subSeqLen[i]-এর যোগফল > subSeqLen[res]-এর যোগফল হয়, তবে
      res := subSeqLen[i]
  শেষ
  res-এর মানগুলো প্রিন্ট করুন
শেষ

উদাহরণ (C++)

#include <iostream>
#include <vector>
using namespace std;

int findAllSum(vector arr) {
  int sum = 0;
  for(int i = 0; i> subSeqLen(n);
  subSeqLen[0].push_back(arr[0]);
  for (int i = 1; i < n; i++) {
    for (int j = 0; j < i; j++) {
      if ((arr[i] > arr[j]) && (findAllSum(subSeqLen[i]) < findAllSum(subSeqLen[j])))
        subSeqLen[i] = subSeqLen[j];
    }
    subSeqLen[i].push_back(arr[i]);
  }
  vector res = subSeqLen[0];
  for(int i = 0; i findAllSum(res))
      res = subSeqLen[i];
  }
  for(int i = 0; i

আউটপুট

The Maximum Sum Subsequence is: 3 4 5
  1. সর্বোচ্চ সাবসিকোয়েন্স যোগফল যাতে কোনো তিনটি সন্নিহিত নয় (Maximum subsequence sum such that no three are consecutive)

  2. সার্কুলার সাবঅ্যারে সর্বোচ্চ সমষ্টি C++-এ

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

  4. স্ট্রিক্টলি ইনক্রিজিং সাব-অ্যারের সর্বোচ্চ যোগফল বের করা C++-তে