ধরুন আমাদের একটি তালিকা সংখ্যা এবং আরেকটি মান k আছে, আমাদের k আকারের প্রতিটি সাবলিস্টের সর্বোচ্চ মান খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[12, 7, 3, 9, 10, 9] k =3, তাহলে আউটপুট হবে [12, 9, 10, 10]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি k> সংখ্যার আকার, তাহলে
-
একটি ফাঁকা তালিকা ফেরত দিন
-
-
res :=একটি নতুন তালিকা
-
তাপমাত্রা :=সংখ্যা[0]
-
temp :=npoint :=0
-
আমি 0 থেকে k − 1 রেঞ্জের জন্য, কর
-
যদি nums[i]> temp, তারপর
-
temp :=সংখ্যা[i]
-
পয়েন্ট :=i
-
-
-
res এর শেষে temp সন্নিবেশ করুন
-
i রেঞ্জ k থেকে সংখ্যার আকারের জন্য, করুন
-
যদি nums[i]
-
তাপমাত্রা :=সংখ্যা[বিন্দু]
-
-
অন্যথায় যখন nums[i]
=k, তারপর -
বিন্দু :=i − k + 1
-
j এর জন্য i − k + 1 থেকে i, করুন
-
যদি nums[j]> nums[point], তারপর
-
পয়েন্ট :=j
-
-
-
তাপমাত্রা :=সংখ্যা[বিন্দু]
-
-
অন্যথায়,
-
temp :=সংখ্যা[i]
-
পয়েন্ট :=i
-
-
res এর শেষে temp সন্নিবেশ করুন
-
-
রিটার্ন রিটার্ন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণির সমাধান:def solve(self, nums, k):if k> len(nums):রিটার্ন [] res =[] temp =nums[0] পয়েন্ট =0 in range(k):যদি nums [i]> temp:temp =nums[i] পয়েন্ট =i res.append(temp) রেঞ্জে i এর জন্য(k, len(nums)):যদি nums[i]=k:বিন্দু =i − k + 1 j এর জন্য রেঞ্জে (i − k + 1, i + 1):যদি nums[j ]> সংখ্যা [বিন্দু]:পয়েন্ট =j টেম্প =সংখ্যা [বিন্দু] অন্য:টেম্প =সংখ্যা [i] পয়েন্ট =i res.append(temp) রিটার্ন resob =Solution()nums =[12, 7, 3, 9, 10, 9]k =3মুদ্রণ(ob.solve(nums, k))
ইনপুট
<প্রে>[12, 7, 3, 9, 10, 9], 3আউটপুট
[12, 9, 10, 10]