मान लीजिए हमारे पास एक ऐरे 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 is 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