📅  最后修改于: 2023-12-03 15:27:14.066000             🧑  作者: Mango
当我们处理数组时,我们可能会面临寻找由唯一元素组成的最长子数组的问题。这种问题可能会出现在数据分析或机器学习等领域中。在这个问题中,我们需要从给定的整数数组中找到具有唯一元素的最长连续子数组。
例如,对于数组 [1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 7, 8, 9],具有唯一元素的最长连续子数组为 [1, 2, 3, 4, 5, 6, 7, 8, 9]。
为解决这个问题,我们可以采用以下算法:
以下是使用 Python 语言实现的代码:
def unique_subarray(arr):
n = len(arr)
left, right = 0, 1
max_len = 1
while right < n:
s = set(arr[left:right])
if len(s) < right - left:
left += 1
else:
max_len = max(max_len, right - left)
right += 1
return max_len
调用该函数:
arr = [1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 7, 8, 9]
print(unique_subarray(arr))
输出结果:
9
因此,由数组中的唯一元素组成的最长子数组的长度为 9。