কম্পিউটার

পাইথনে k আকারের সাবলিস্টের সর্বোচ্চ মান খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি তালিকা সংখ্যা এবং আরেকটি মান 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] 

  1. পাইথনে দীর্ঘতম ক্রমবর্ধমান অনুক্রমের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অভিধানে সর্বোচ্চ ৩টি মান খুঁজুন

  3. একটি অভিধানে সর্বোচ্চ ৩টি মান খুঁজে পেতে পাইথন প্রোগ্রাম

  4. একটি অ্যারের বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম