मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, जहां सभी तत्व अद्वितीय हैं। हमें उस सबसे लंबे सबलिस्ट की लंबाई ढूंढनी है जिसमें लगातार तत्व हों।
उदाहरण के लिए, यदि इनपुट है nums = [3, 6, 7, 5, 4, 9], तो आउटपुट 5 होगा, क्योंकि सबलिस्ट [3, 6, 7, 5, 4] है जिसमें 3 से 7 तक सभी लगातार तत्व हैं।
एल्गोरिदम
ret := 0- प्रत्येक
iके लिए 0 सेlen(nums)-1तक:lhs := nums[i],rhs := nums[i]- प्रत्येक
jके लिएiसेlen(nums)-1तक:lhs = min(lhs, nums[j])rhs = max(rhs, nums[j])- यदि
(rhs - lhs) == (j - i), तोret = max(ret, j - i + 1)
retलौटाएं
उदाहरण कार्यान्वयन
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)) # आउटपुट: 5
इनपुट
[3, 6, 7, 5, 4, 9]
आउटपुट
5