在Python中找到包含唯一元素的最长连续子列表的长度
假设我们有一个名为nums的数字列表,其中所有元素都是唯一的。我们必须找到包含连续元素的最长子列表的长度。
因此,如果输入为nums = [3、6、7、5、4、9],则输出将为5,因为子列表是[3、6、7、5、4],其中包含从3到7的所有连续元素。
要解决这个问题,我们将遵循以下步骤:
- ret:= 0
- 对于i在范围0到nums大小-1的情况,执行
- lhs:= nums [i]
- rhs:= nums [i]
- 对于j在范围i到nums大小-1的情况,执行
- lhs:=lhs和nums [j]的最小值
- rhs:= rhs和nums [j]的最大值
- 如果(rhs-lhs)与(j-i)相同,则
- ret:= 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))
输入
[3, 6, 7, 5, 4, 9]
输出
1