Java 数组的 MEX(Minimum Excluded Value)是数组中没有出现的最小非负整数。计算 MEX 的步骤:创建布尔数组 exists,长度为数组长度加 1。遍历数组,对于每个非负数将其在 exists 中标记为 true。遍历 exists 数组,返回第一个值为 false 的索引作为 MEX。

Java 数组的 MEX 是什么?
MEX(Minimum Excluded Value)是数组中没有出现的最小非负整数。例如,对于数组 [2, 3, 5, 7],MEX 为 0,因为 0 到 7 的所有整数都出现在数组中。
如何计算 MEX?
Java 中可以使用以下步骤计算 MEX:
立即学习“Java免费学习笔记(深入)”;
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
public static int findMex(int[] arr) {
boolean[] exists = new boolean[arr.length + 1]; // 记录数组中存在的元素
for (int num : arr) {
if (num >= 0 && num < exists.length) {
exists[num] = true;
}
}
for (int i = 0; i < exists.length; i++) {
if (!exists[i]) {
return i; // 找到第一个不存在于数组中的非负整数
}
}
return exists.length; // 如果数组中不存在 MEX,则返回数组长度
}举个例子
对于数组 [2, 3, 5, 7],计算 MEX 的步骤如下:
- 创建一个布尔数组
exists,长度为数组长度加 1,表示是否存在非负整数。 - 遍历数组,对于每个数字
num,如果它非负并且小于布尔数组的长度,则将exists[num]设为true。 - 遍历
exists数组,找到第一个值为false的索引,返回该索引作为 MEX。
在本例中,exists 数组为:[true, false, true, true, true, true, true, true]。第一个值为 false 的索引为 1,因此 MEX 为 1。









