সমস্যা বিবরণ
একটি ক্লাস ডিজাইন করুন যা একটি স্ট্রিম থেকে 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)
- কনস্ট্রাক্টরে
self.array = nums,self.k = k। 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