मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जहां सभी तत्व अद्वितीय हैं। हमें सबसे लंबे सबलिस्ट की लंबाई का पता लगाना है जिसमें लगातार तत्व होते हैं।
इसलिए, यदि इनपुट nums =[3, 6, 7, 5, 4, 9] की तरह है, तो आउटपुट 5 होगा, क्योंकि सबलिस्ट [3, 6, 7, 5, 4] है, इसमें लगातार सभी तत्व शामिल हैं 3 से 7 तक।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- रिट:=0
- i के लिए 0 से लेकर अंकों के आकार -1 तक के लिए
- एलएचएस:=अंक[i]
- rhs:=nums[i]
- जे के लिए i श्रेणी में अंकों के आकार के लिए -1, do
- lhs :=न्यूनतम lhs और nums[j]
- rhs :=अधिकतम rhs और nums[j]
- अगर (rhs - lhs) (j - i) के समान है, तो
- ret :=अधिकतम रिट और (j - i + 1)
- रिटर्न रिटर्न
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): ret = 0 for i in range(len(nums)): lhs = nums[i] rhs = nums[i] for j in range(i, len(nums)): lhs = min(lhs, nums[j]) rhs = max(rhs, nums[j]) if rhs - lhs == j - i: ret = max(ret, j - i + 1) return ret nums = [3, 6, 7, 5, 4, 9] print(solve(nums))
इनपुट
[3, 6, 7, 5, 4, 9]
आउटपुट
1