📅  最后修改于: 2023-12-03 14:49:27.560000             🧑  作者: Mango
MEX(Minimum Excluded)是指一个数列中未出现的最小正整数。在本题中,我们需要从给定的数组构造出一个 MEX 数组。以下是一个简单的 Python 实现。
def construct_mex(arr):
cnt = [0] * (len(arr) + 2)
for num in arr:
if num <= len(arr):
cnt[num] = 1
for i in range(1, len(cnt)):
if cnt[i] == 0:
return i
该算法使用了一个辅助数组 cnt
,来记录数组中每个数字的出现次数。具体来说,它首先将数组中所有不大于数组长度的数字,在辅助数组中标记为出现过。然后,遍历辅助数组,找到第一个未被标记的数字,即为 MEX。这里需要注意的是,MEX 最大为 len(arr)+1,因此需要将辅助数组的长度加 2。
该算法的时间复杂度为 O(n),其中 n 是数组的长度。因此,它非常适合用于小规模数组的 MEX 计算。