मान लीजिए हम एक क्लास डिज़ाइन करना चाहते हैं जो स्ट्रीम में kवां सबसे बड़ा तत्व ढूंढे। यह क्रमबद्ध क्रम में kवां सबसे बड़ा तत्व है, न कि kवां विशिष्ट तत्व।
KthLargest क्लास में एक कंस्ट्रक्टर होगा जो एक पूर्णांक k और एक सरणी nums स्वीकार करेगा, जिसमें स्ट्रीम से प्रारंभिक तत्व होंगे। KthLargest.add मेथड को प्रत्येक कॉल पर स्ट्रीम में kवें सबसे बड़े तत्व को दर्शाने वाला तत्व वापस करना होगा।
उदाहरण के लिए, यदि इनपुट k = 3, प्रारंभिक तत्व = [4,5,8,2] है, फिर add(3), add(5), add(10), add(9), add(4) कॉल करें। तो आउटपुट क्रमशः 4,5,5,8,8 होगा।
हल करने के चरण
- इनिशियलाइज़र परिभाषित करें, यह k, nums लेगा:
- array := nums
- add() फ़ंक्शन परिभाषित करें। यह val लेगा:
- val को array के अंत में डालें
- array को सॉर्ट करें
- array[array का आकार - 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))
print(ob.add(5))
print(ob.add(10))
print(ob.add(9))
print(ob.add(4))
इनपुट
ob.add(3) ob.add(5) ob.add(10) ob.add(9) ob.add(4)
आउटपुट
4 5 5 8 8