কম্পিউটার

পাইথনে একটি প্রদত্ত তালিকার দীর্ঘতম পাটিগণিত পরবর্তী দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের দীর্ঘতম পাটিগণিত অনুসারির দৈর্ঘ্য বের করতে হবে। যেহেতু আমরা জানি একটি ক্রম S[i] হল একটি পাটিগণিত ক্রম যখন S[i+1] - S[i] রেঞ্জের প্রতিটি i-এর জন্য একই মান থাকে (0 ≤ i

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 4, 7, 10, 13, 20, 16], তাহলে আউটপুট হবে 6, পরবর্তী [1, 4, 7, 10, 13, 16] একটি পাটিগণিত কারণ প্রতিটি ধারাবাহিক উপাদানের মধ্যে পার্থক্য 3।

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

  • n :=arr এর আকার
  • যদি n <=1 হয়, তাহলে
    • রিটার্ন n
  • res :=0
  • dp :=একটি খালি মানচিত্র, ডিফল্টরূপে এটি 1 সংরক্ষণ করবে যখন কী পাওয়া যাবে না
  • 1 থেকে n - 1 রেঞ্জের জন্য, করুন
      0 থেকে i - 1 রেঞ্জের মধ্যে j-এর জন্য
    • করুন
      • diff :=arr[i] - arr[j]
      • dp[i, diff] :=dp[j, diff] + 1
      • res :=res এর সর্বোচ্চ এবং dp[i, diff
  • রিটার্ন রিটার্ন

উদাহরণ (পাইথন)

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

from collections import defaultdict
class Solution:
   def solve(self, arr):
      n = len(arr)
      if n <= 1:
         return n
      res = 0
      dp = defaultdict(lambda: 1)
      for i in range(1, n):
         for j in range(i):
            diff = arr[i] - arr[j]
            dp[i, diff] = dp[j, diff] + 1
            res = max(res, dp[i, diff])
      return res
ob = Solution()
nums = [1, 4, 7, 10, 13, 20, 16]
print(ob.solve(nums))

ইনপুট

[1, 4, 7, 10, 13, 20, 16]

আউটপুট

6

  1. পাইথনে দীর্ঘতম ক্রমবর্ধমান অনুক্রমের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে দীর্ঘতম অ্যানাগ্রাম অনুগামীর দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে দীর্ঘতম সুষম অনুসৃতির দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে প্রদত্ত তালিকায় k দীর্ঘতম শব্দ খুঁজুন