কম্পিউটার

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


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, এবং আমাদের সবচেয়ে দীর্ঘতম সংযোজিত সাবলিস্টের দৈর্ঘ্য খুঁজে বের করতে হবে যেখানে এর সমস্ত উপাদান অনন্য।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[6, 2, 4, 6, 3, 4, 5, 2], তাহলে আউটপুট হবে 5, কারণ অনন্য উপাদানগুলির দীর্ঘতম তালিকা হল [6, 3, 4, 5] , 2]।

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

  • head :=0, dct :=একটি নতুন মানচিত্র

  • max_dist :=0

  • প্রতিটি সূচক i এবং উপাদান সংখ্যার জন্য, করুন

    • যদি num হয় dct এবং dct[num]>=head, তাহলে

      • head :=dct[num] + 1

    • dct[সংখ্যা] :=i

    • যদি i - head + 1> max_dist, তাহলে

      • max_dist :=i - head + 1

  • রিটার্ন max_dist

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

উদাহরণ

class Solution:
   def solve(self, nums):
      head = 0
      dct = {}
      max_dist = 0
      for i, num in enumerate(nums):
         if num in dct and dct[num] >= head:
            head = dct[num] + 1
         dct[num] = i
         if i - head + 1 > max_dist:
            max_dist = i - head + 1
   return max_dist
ob = Solution()
nums = [6, 2, 4, 6, 3, 4, 5, 2]
print(ob.solve(nums))

ইনপুট

[6, 2, 4, 6, 3, 4, 5, 2]

আউটপুট

5

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

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

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

  4. পাইথনে সংলগ্ন কঠোরভাবে বর্ধিত সাবলিস্টের দৈর্ঘ্য খুঁজে বের করার জন্য প্রোগ্রাম