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

পাইথনে Kth Largest Element in a Stream


সমস্যা বিবরণ

একটি ক্লাস ডিজাইন করুন যা একটি স্ট্রিম থেকে k-তম সবচেয়ে বড় এলিমেন্ট খুঁজে বের করে। কনস্ট্রাক্টর নেয় k এবং প্রাথমিক অ্যারে nums। add(val) মেথড কল করলে স্ট্রিমে ভ্যালু যোগ হয়ে k-তম লার্জেস্ট রিটার্ন করে।

উদাহরণ

k = 3, nums = [4,5,8,2]

add(3)→4, add(5)→5, add(10)→5, add(9)→8, add(4)→8

এলগরিদম (Sorting Approach)

  1. কনস্ট্রাক্টরে self.array = nums, self.k = k।
  2. add(val):
    • self.array.append(val)।
    • self.array.sort()।
    • return self.array[len(self.array) - self.k]।

নোট: বড় স্ট্রিমের জন্য Min-Heap (O(log k)) দক্ষতর।

পাইথন বাস্তবায়ন

class KthLargest:
    def __init__(self, k, nums):
        self.array = nums
        self.k = k
    
    def add(self, val):
        self.array.append(val)
        self.array.sort()
        return self.array[len(self.array) - self.k]

ob = KthLargest(3, [4,5,8,2])
print(ob.add(3))   # 4
print(ob.add(5))   # 5
print(ob.add(10))  # 5
print(ob.add(9))   # 8
print(ob.add(4))   # 8

আউটপুট

4 5 5 8 8
  1. পাইথনে সর্বোচ্চ ত্রিভুজের এলিয়া (Largest Triangle Area) নির্ণয়

  2. পাইথনে BST-এ Kth Smallest Element (K-তম ক্ষুদ্রতম উপাদান)

  3. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  4. পাইথনে অ্যারে থেকে সর্বোচ্চ এলিমেন্ট বের করা