ধরুন আমাদের একটি অ্যারে রয়েছে যেখানে বিভিন্ন পূর্ণসংখ্যার মান এবং একটি প্রদত্ত দৈর্ঘ্য k আছে। প্রদত্ত দৈর্ঘ্যের অ্যারে থেকে আমাদের সর্বশ্রেষ্ঠ উপ-অ্যারে বের করতে হবে। একটি সাবঅ্যারেকে অন্য সাবয়ারের থেকে বড় বলা হয়, যদি subarray1[i] ≠ subarry2[i] এবং subarray1[i]> subarry2[i] হয়।
সুতরাং, যদি ইনপুট হয় সংখ্যা =[5, 3, 7, 9], k =2, তাহলে আউটপুট হবে [7, 9]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- শুরু :=সংখ্যার আকার - k
- max_element :=nums[start]
- max_index :=শুরু
- শুরু করার সময়>=0, কর
- যদি nums[start]> max_element অ-শূন্য হয়, তাহলে
- max_element :=nums[start]
- max_index :=শুরু
- সংখ্যা ফেরত দিন[সূচক max_index থেকে max_index + k]
- যদি nums[start]> max_element অ-শূন্য হয়, তাহলে
- সংখ্যা ফেরত দিন[সূচক max_index থেকে max_index + k]
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(nums, k): start = len(nums) - k max_element = nums[start] max_index = start while start >= 0: if nums[start] > max_element: max_element = nums[start] max_index = start start -= 1 return nums[max_index:max_index + k] print(solve([5, 3, 7, 9], 2))
ইনপুট
[5, 3, 7, 9], 2
আউটপুট
[7, 9]