কম্পিউটার টিউটোরিয়াল

পাইথনে K-দৈর্ঘ্যের সাবলিস্ট যাদের গড় টার্গেটের চেয়ে বড় বা সমান সেগুলোর সংখ্যা বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি তালিকা nums এবং দুটি অতিরিক্ত মান k ও target আছে। আমাদের কাজ হল আকার k এমন সাবলিস্টগুলোর সংখ্যা বের করা যাদের গড় মান target এর চেয়ে বড় বা সমান।

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

সমাধানের ধাপসমূহ:
  • target := target * k
  • sum := 0, ans := 0
  • প্রতিটি ইনডেক্স i এবং সংখ্যা n এর জন্য nums-এ:
    • যদি i >= k হয়, তবে sum := sum - nums[i - k]
    • sum := sum + n
    • যদি i >= (k - 1) হয়, তবে:
      • যদি sum >= target হয়, তবে ans := ans + 1
  • ans রিটার্ন করুন।
উদাহরণ কোড
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. পাইথনে একই সেট বিট সংখ্যায় পরের বড় সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে সিম্বল अरেঞ্জ করে টার্গেট পাওয়ার উপায়ের সংখ্যা বের করার প্রোগ্রাম

  4. পাইথনে স্ট্রার্ট থেকে এন্ড পৌঁছানোর ন্যূনতম অপারেশন (x2 বা -1)