Java数组的mex怎么用

ID:17703 / 打印
java 数组的 mex(minimum excluded value)是数组中没有出现的最小非负整数。计算 mex 的步骤:创建布尔数组 exists,长度为数组长度加 1。遍历数组,对于每个非负数将其在 exists 中标记为 true。遍历 exists 数组,返回第一个值为 false 的索引作为 mex。

Java数组的mex怎么用

Java 数组的 MEX 是什么?

MEX(Minimum Excluded Value)是数组中没有出现的最小非负整数。例如,对于数组 [2, 3, 5, 7],MEX 为 0,因为 0 到 7 的所有整数都出现在数组中。

如何计算 MEX?

Java 中可以使用以下步骤计算 MEX:

立即学习“Java免费学习笔记(深入)”;

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 的步骤如下:

  1. 创建一个布尔数组 exists,长度为数组长度加 1,表示是否存在非负整数。
  2. 遍历数组,对于每个数字 num,如果它非负并且小于布尔数组的长度,则将 exists[num] 设为 true。
  3. 遍历 exists 数组,找到第一个值为 false 的索引,返回该索引作为 MEX。

在本例中,exists 数组为:[true, false, true, true, true, true, true, true]。第一个值为 false 的索引为 1,因此 MEX 为 1。

上一篇: java中 数组怎么存入字符
下一篇: java数组怎么设空值

作者:admin @ 24资源网   2024-11-27

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。