ধরুন আমাদের একটি তালিকা সংখ্যা, এবং দুটি অতিরিক্ত মান 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), তারপর
- যদি যোগফল>=টার্গেট হয়, তাহলে
- উত্তর :=উত্তর + ১
- যদি যোগফল>=টার্গেট হয়, তাহলে
- যদি i>=k, তাহলে
- উত্তর ফেরত দিন
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ কোড
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