কম্পিউটার

কে-লেংথ সাবলিস্টের সংখ্যা খুঁজে বের করার প্রোগ্রাম যার গড় পাইথনের লক্ষ্যের সমান বা বেশি


ধরুন আমাদের একটি তালিকা সংখ্যা, এবং দুটি অতিরিক্ত মান k এবং লক্ষ্য আছে, আমাদের সাবলিস্টের সংখ্যা খুঁজে বের করতে হবে যার আকার k এবং এর গড় মান ≥ লক্ষ্য।

সুতরাং, যদি ইনপুটটি nums =[1, 10, 5, 6, 7] k =3 লক্ষ্য =6 এর মত হয়, তাহলে আউটপুট হবে 2, যেমন সাবলিস্ট [1, 10, 7] এর গড় মান 6 এবং [১০, ৫, ৬] গড় ৭।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • টার্গেট :=টার্গেট * k
  • সমষ্টি :=0, উত্তর :=0
  • প্রতিটি সূচক i এবং সংখ্যা n এর জন্য, করুন
    • যদি i>=k, তাহলে
      • সমষ্টি :=যোগফল - সংখ্যা[i - k]
    • সমষ্টি :=যোগফল + n
    • যদি i>=(k - 1), তারপর
      • যদি যোগফল>=টার্গেট হয়, তাহলে
        • উত্তর :=উত্তর + ১
  • উত্তর ফেরত দিন

আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:

উদাহরণ কোড

class Solution:
   def solve(self, nums, k, target):
      target *= k
      sum = 0
      ans = 0
      for i, n in enumerate(nums):
         if i >= k:
            sum -= nums[i - k]
         sum += n
         if i >= (k - 1):
            if sum >= target:
               ans += 1
         return ans

ob = Solution()
nums = [1, 10, 5, 6, 7]
k = 3
target = 6
print(ob.solve(nums, k, target))

ইনপুট

[1, 10, 5, 6, 7], 3, 6

আউটপুট

2

  1. পাইথনে লক্ষ্যে পৌঁছানোর জন্য কয়েনের সংমিশ্রণের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে n এর মতো একই সংখ্যক সেট বিট সহ উচ্চতর সংখ্যা খুঁজতে প্রোগ্রাম?

  3. পাইথনে টার্গেট পেতে আমরা কতগুলো উপায় খুঁজে বের করতে পারি?

  4. পাইথনে লক্ষ্যে পৌঁছানোর জন্য প্রয়োজনীয় প্রদত্ত অপারেশনের সংখ্যা খুঁজে বের করার প্রোগ্রাম