ধরুন আমরা একটি স্ট্রীমের kth বৃহত্তম উপাদান খুঁজে পেতে একটি ক্লাস ডিজাইন করতে চাই। এটি সাজানো ক্রমে kth বৃহত্তম উপাদান, kth স্বতন্ত্র উপাদান নয়৷
KthLargest ক্লাসে একটি কনস্ট্রাক্টর থাকবে যা একটি পূর্ণসংখ্যা k এবং একটি অ্যারে সংখ্যা গ্রহণ করে, যাতে স্ট্রিম থেকে প্রাথমিক উপাদান থাকবে। KthLargest.add পদ্ধতিতে প্রতিটি কলের জন্য, স্ট্রীমের kth বৃহত্তম উপাদানের প্রতিনিধিত্বকারী উপাদানটি ফিরিয়ে দেবে।
সুতরাং, যদি ইনপুট হয় k =3, প্রাথমিক উপাদান =[4,5,8,2], তাহলে add(3), add(5), add(10), add(9), add(4) কল করুন। . , তাহলে আউটপুট হবে যথাক্রমে 4,5,5,8,8।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ইনিশিয়ালাইজার সংজ্ঞায়িত করুন, এতে k, nums
- লাগবে
- অ্যারে :=সংখ্যা
- একটি ফাংশন সংজ্ঞায়িত করুন add()। এটি val
- লাগবে
- অ্যারের শেষে val সন্নিবেশ করান
- অ্যারে সাজান
- রিটার্ন অ্যারে[অ্যারের আকার -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