मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें संख्या में सबसे छोटी सबलिस्ट की लंबाई का पता लगाना है, अगर सबलिस्ट को सॉर्ट किया जाता है, तो पूरे एरे नंबर्स को आरोही क्रम में सॉर्ट किया जाएगा।
इसलिए, यदि इनपुट nums =[1,2,5,4,9,10] जैसा है, तो आउटपुट 2 होगा, क्योंकि सबलिस्ट [4, 3] को सॉर्ट करने से हमें [0, 1, 3, 4 मिलेगा। , 8, 9]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- f:=-1, l:=-1
- lst:=सूची संख्या क्रमित करें
- मैं के लिए 0 से लेकर अंकों के आकार तक, करें
- यदि nums[i] lst[i] के समान नहीं है, तो
- यदि f, -1 के समान है, तो
- f :=i
- अन्यथा,
- l :=i
- यदि f, -1 के समान है, तो
- यदि nums[i] lst[i] के समान नहीं है, तो
- यदि l, -1 के समान है और f, -1 के समान है, तो
- वापसी 0
- रिटर्न एल - एफ + 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