मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें nums में सबसे छोटी सबलिस्ट की लंबाई ढूंढनी है, जिसे क्रमबद्ध करने पर पूरा सरणी nums आरोही क्रम में क्रमबद्ध हो जाए।
उदाहरण के लिए, यदि इनपुट है nums = [1,2,5,4,9,10], तो आउटपुट होगा 2, क्योंकि सबलिस्ट [4, 3] को क्रमबद्ध करने पर हमें [0, 1, 3, 4, 8, 9] मिलेगा।
हल करने के चरण
f := -1,l := -1lst := numsको क्रमबद्ध करें।iको 0 सेnumsके आकार तक:- यदि
nums[i] != lst[i], तो:- यदि
f == -1, तोf := i। - अन्यथा,
l := i।
- यदि
- यदि
- यदि
l == -1औरf == -1, तो0लौटाएं। l - f + 1लौटाएं।
उदाहरण
class Solution:
def solve(self, nums):
f = -1
l = -1
lst = sorted(nums)
for i in range(len(nums)):
if nums[i] != lst[i]:
if f == -1:
f = i
else:
l = i
if l == -1 and f == -1:
return 0
return l - f + 1
ob = Solution()
print(ob.solve([1,2,5,4,9,10]))
इनपुट
[1,2,5,4,9,10]
आउटपुट
2