মান লক্ষ্য করুন আমাদের কাছে একটি বাইনারি লিস্ট আছে (শুধু ১ এবং ০) এবং একটি সংখ্যা k। আমরা সর্বোচ্চ kটি ০ কে ১ বানাতে পারি। আমাদের কাজ হল সবচেয়ে লম্বা সাবলিস্টের দৈর্ঘ্য বের করা যেটি সম্পূর্ণ ১ দিয়ে ভরা।
উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [0, 1, 1, 0, 0, 1, 1] এবং k = 2, তবে আউটপুট হবে 6, কারণ আমরা মাঝপথের দুটি ০ কে ১ বানালে লিস্টটি হবে [0, 1, 1, 1, 1, 1, 1]।
zeros := 0,ans := 0,j := 0- প্রতিটি ইনডেক্স
iএবং ভ্যালুnএর জন্যnums-এ:zeros := zeros + (1 if n == 0 else 0)zeros > kহলে লুপ চালান:zeros := zeros - (1 if nums[j] == 0 else 0)j := j + 1
- যদি
i - j + 1 > ansহয়, তবেans := i - j + 1
ansরিটার্ন করুন।
class Solution:
def solve(self, nums, k):
zeros = 0
ans = 0
j = 0
for i, n in enumerate(nums):
zeros += n == 0
while zeros > k:
zeros -= nums[j] == 0
j += 1
if i - j + 1 > ans:
ans = i - j + 1
return ans
ob = Solution()
nums = [0, 1, 1, 0, 0, 1, 1]
k = 2
print(ob.solve(nums, k))
[0, 1, 1, 0, 0, 1, 1], 2
6