আমাদের একটি অ্যারে nums আছে, আমাদের এটিকে দুটি আলাদা সাবঅ্যারে left এবং right-এ পার্টিশন করতে হবে যাতে:
leftসাবঅ্যারেতে প্রতিটি উপাদানrightসাবঅ্যারেতে প্রতিটি উপাদানের চেয়ে কম বা সমানleftএবংrightসাবঅ্যারে দুটোই নন-এমপ্টিleftসাবঅ্যারেতে সম্ভাব্য সবচেয়ে ছোট আকার থাকে
আমাদের ას 겪 পার্টিশনের পর left-এর দৈর্ঘ্য বের করতে হবে।
উদাহরণস্বরূপ, ইনপুট nums = [5,0,3,8,6] হলে আউটপুট হবে 3 কারণ left অ্যারে হবে [5,0,3] এবং right সাবঅ্যারে হবে [8,6]।
সমাধানের ধাপসমূহ
mx := None, temp := None, nmx := Nonetemp2 := 0nums-এর প্রতিটিiএর জন্য:যদি
mx == Noneহয়, তবে:mx := inmx := itemp := temp2temp2 := temp2 + 1পরবর্তী ইটারেশনে যান
যদি
i >= mxহয়, তবে:temp2 := temp2 + 1যদি
i > nmxহয়, তবে:nmx := i
পরবর্তী ইটারেশনে যান
অন্যথায়:
temp := temp2temp2 := temp2 + 1mx := nmxপরবর্তী ইটারেশনে যান
temp + 1রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালোভাবে বুঝার জন্য:
def solve(nums):
mx = None
temp = None
nmx = None
temp2 = 0
for i in nums:
if mx is None:
mx = i
nmx = i
temp = temp2
temp2 += 1
continue
if i >= mx:
temp2 += 1
if i > nmx:
nmx = i
continue
else:
temp = temp2
temp2 += 1
mx = nmx
continue
return temp + 1
nums = [5,0,3,8,6]
print(solve(nums)) ইনপুট
[5,0,3,8,6]
আউটপুট
3