You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:计算集合minimum excludant的代码异常问题

关于计算Minimum Excludant(最小排斥元)的代码解析

首先明确:你贴的这段代码本身是可以正常工作的,我们一步步拆解逻辑帮你搞懂它:

  1. 函数mex接收列表后,先转成集合set(my_list):集合的成员查询速度远快于列表,而且自动去重——MEX只关心元素是否存在,和出现次数无关,这么处理完全合理。
  2. 初始化mex为0:MEX的定义是最小的未出现在集合中的非负整数,所以从0开始找是正确的起点。
  3. 循环判断:如果当前mex在集合里,就把它加1,直到找到第一个不在集合里的数,返回这个数。

拿你测试的[1,0,2,4]举例:

  • 转成集合是{0,1,2,4}
  • mex=0在集合里,加1变成1;
  • mex=1在集合里,加1变成2;
  • mex=2在集合里,加1变成3;
  • mex=3不在集合里,循环结束,返回3——这完全符合MEX的结果。

如果你觉得代码“无法正常工作”,大概率是这两种情况:

  • 你测试了包含负数的列表?比如[-1, 0],代码返回1,这是符合标准MEX定义的(因为MEX只考虑非负整数);
  • 你对MEX的定义理解有误?比如误以为要找所有整数里最小的未出现数(包括负数),那这段代码确实不适用,但那已经不是标准的MEX了。

内容的提问来源于stack exchange,提问作者Vika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:29:57