ধরুন আমাদের nums নামে একটি বাইনারি অ্যারে আছে, আমরা এটি থেকে একটি উপাদান মুছে ফেলতে পারি। আমাদের দীর্ঘতম অ-খালি সাবয়ারের আকার খুঁজে বের করতে হবে যা ফলাফল অ্যারেতে শুধুমাত্র 1 ধারণ করে। যদি এমন কোন সাবয়ারে না থাকে, তাহলে 0 ফেরত দিন।
সুতরাং, ইনপুট যদি nums =[1,0,1,1,1,0,1,1,0] এর মত হয়, তাহলে আউটপুট হবে 5 কারণ অবস্থান 5 থেকে 0 সরিয়ে দিলে আমরা একটি সাবয়ারে পেতে পারি [1] ,1,1,1,1] পাঁচটি 1s আছে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি 0 সংখ্যায় না হয়, তাহলে
-
সংখ্যার রিটার্ন সাইজ - 1
-
-
যদি 1 সংখ্যায় না হয়, তাহলে
-
ফেরত 0
-
-
a :=একটি নতুন তালিকা
-
cnt :=0
-
প্রতিটি i সংখ্যায়, করুন
-
যদি আমি 0 এর সমান হয়, তাহলে
-
যদি cnt 0 এর মত না হয়, তাহলে
-
a
এর শেষে cnt ঢোকান -
cnt :=0
-
-
a
এর শেষে i ঢোকান -
অন্যথায়,
-
cnt :=cnt + 1
-
-
-
-
যদি cnt 0 এর মত না হয়, তাহলে
-
a
এর শেষে cnt ঢোকান
-
-
সর্বোচ্চ :=0
-
আমি 0 থেকে a এর আকারের মধ্যে, কর
-
যদি a[i] 0 এর মত না হয়, তাহলে
-
পরবর্তী পুনরাবৃত্তির জন্য যান
-
-
যদি a[i] 0 এর সমান হয় এবং i a - 1 এর আকারের সমান হয়, তাহলে
-
সর্বোচ্চ :=সর্বোচ্চ সর্বোচ্চ এবং a[i-1]
-
-
অন্যথায় যখন a[i] 0 এর সমান এবং i 0 এর সমান, তখন
-
সর্বোচ্চ :=সর্বোচ্চ সর্বোচ্চ এবং a[i+1]
-
-
অন্যথায় যখন a[i] 0 এর মত হয়, তখন
-
সর্বোচ্চ :=সর্বোচ্চ সর্বোচ্চ এবং (a[i+1]+a[i-1])
-
-
-
রিটার্ন ম্যাক্স
উদাহরণ
def solve(nums): if 0 not in nums: return len(nums)-1 if 1 not in nums: return 0 a = [] cnt = 0 for i in nums: if i == 0: if cnt != 0: a.append(cnt) cnt = 0 a.append(i) else: cnt += 1 if cnt!=0: a.append(cnt) Max = 0 for i in range(len(a)): if a[i] != 0: continue if a[i] == 0 and i == len(a)-1: Max = max(Max,a[i-1]) elif a[i] == 0 and i == 0: Max = max(Max,a[i+1]) elif a[i] == 0: Max = max(Max,a[i+1]+a[i-1]) return Max nums = [1,0,1,1,1,0,1,1,0] print(solve(nums))
ইনপুট
[1,0,1,1,1,0,1,1,0]
আউটপুট
5