কম্পিউটার

পাইথনে ঠিক k অনন্য উপাদান সহ সাবলিস্টের সংখ্যা গণনা করার প্রোগ্রাম


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

সুতরাং, ইনপুট যদি nums =[2, 2, 3, 4] k =2 এর মত হয়, তাহলে আউটপুট হবে 3, যেমন আমাদের সাবলিস্ট রয়েছে:[2, 2, 3], [2, 3], [৩, ৪]।

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

  • একটি ফাংশন গণনা () সংজ্ঞায়িত করুন। এতে K
  • লাগবে
  • স্লট :=একটি খালি মানচিত্র, ডিফল্টরূপে সমস্ত মান 0
  • i :=res :=0
  • প্রতিটি সূচক j, এবং মান x সংখ্যার জন্য, করুন
    • স্লট[x] :=স্লট[x] + 1
    • যখন স্লটের আকার> K, do
      • স্লট[সংখ্যা[i]] :=স্লট[সংখ্যা[i]] - 1
      • যদি slot[nums[i]] 0 এর মত হয়, তাহলে
        • স্লট [সংখ্যা[i]] সরান
      • i :=i + 1
    • res :=res + j - i + 1
  • রিটার্ন রিটার্ন
  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -
  • রিটার্ন কাউন্ট(k) - count(k - 1)

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

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

from collections import Counter
class Solution:
   def solve(self, nums, k):
      def count(K):
         slot = Counter()
         i = res = 0
         for j, x in enumerate(nums):
            slot[x] += 1
            while len(slot) > K:
               slot[nums[i]] -= 1
               if slot[nums[i]] == 0:
                  del slot[nums[i]]
               i += 1
            res += j - i + 1
         return res
      return count(k) - count(k - 1)
ob = Solution()
nums = [2, 2, 3, 4]
k = 2
print(ob.solve(nums, k))

ইনপুট

[2, 2, 3, 4], 2

আউটপুট

3

  1. পাইথনে n নোড সহ BST সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে প্রদত্ত প্রান্তগুলি অন্তর্ভুক্ত করে এমন অনন্য পাথের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে 0 থেকে n মান দিয়ে অনন্য বাইনারি অনুসন্ধান গাছের সংখ্যা গণনা করার প্রোগ্রাম তৈরি করা যেতে পারে

  4. পাইথনে তালিকার মধ্যে অনন্য সাবলিস্ট গণনা করুন