程序查找Python中最长的不同子列表的长度
假设我们有一个称为nums的数字列表,我们必须找到最长的连续子列表的长度,其中所有元素都是唯一的。
因此,如果输入类似于nums = [6、2、4、6、3、4、5、2],则输出将为5,因为唯一元素的最长列表为[6、3、4、5 ,2]。
为了解决这个问题,我们将遵循以下步骤-
head:= 0,dct:=新映射
max_dist:= 0
对于每个索引i和以num为单位的num元素,执行
max_dist:= i-头+ 1
头:= dct [num] + 1
如果num在dct中并且dct [num]> = head,则
dct [num]:= i
如果我-head + 1> max_dist,则
返回max_dist
让我们看下面的实现以更好地理解-
示例
class Solution:def solve(self, nums):
head = 0
dct = {}
max_dist = 0
for i, num in enumerate(nums):
if num in dct and dct[num] >= head:
head = dct[num] + 1
dct[num] = i
if i - head + 1 > max_dist:
max_dist = i - head + 1
return max_dist
ob = Solution()nums = [6, 2, 4, 6, 3, 4, 5, 2]
print(ob.solve(nums))
输入值
[6, 2, 4, 6, 3, 4, 5, 2]
输出结果
5
以上是 程序查找Python中最长的不同子列表的长度 的全部内容, 来源链接: utcz.com/z/341101.html