#刷题交流#
385.小C的mex查询
首先,计划如下:
初始化一个布尔数组 present 来标记每个非负整数是否在集合中,以及一个变量 mex 来记录当前的 mex。
遍历每个查询 [l, r],将区间内的所有整数标记为存在。
在每次操作后,更新 mex,直到找到集合中未出现的最小非负整数。
将每次操作后的 mex 添加到结果列表中。
最终返回结果列表。
def solution(q: int, queries: list) -> list:
result = []
present = set()
mex = 0
for l, r in queries:
for num in range(l, r + 1):
present.add(num)
if num == mex:
while mex in present:
mex += 1
result.append(mex)
return result

if __name__ == '__main__':
print(solution(4, [[1, 3], [7, 8], [0, 5], [3, 6]]) == [0, 0, 6, 9])
print(solution(3, [[0, 2], [3, 4], [6, 10]]) == [3, 5, 5])
print(solution(2, [[2, 5], [7, 9]]) == [0, 0])
展开
评论