你可以使用以下方法来实现:

  1. 创建一个空的 HashSet 来存储已经出现的数字。
  2. 遍历输入的数字数组,将每个数字添加到 HashSet 中。
  3. 创建一个变量 missingNumber 并初始化为 1。
  4. 使用一个循环,检查 missingNumber 是否存在于 HashSet 中,如果存在则将 missingNumber 加 1。
  5. 循环结束后,missingNumber 的值就是最小缺失的数字。
  6. 如果 HashSet 中包含所有的数字,则将 missingNumber 的值设置为数组中的最大值 + 1。

以下是示例代码:

import java.util.HashSet;

public class MissingNumber {
    public static int getMissingNumber(int[] nums) {
        HashSet<Integer> set = new HashSet<>();

        // 将数字添加到 HashSet 中
        for (int num : nums) {
            set.add(num);
        }

        int missingNumber = 1;

        // 检查 missingNumber 是否存在于 HashSet 中
        while (set.contains(missingNumber)) {
            missingNumber++;
        }

        // 如果 HashSet 中包含所有的数字,则将 missingNumber 设置为数组中的最大值 + 1
        if (missingNumber == 1) {
            int maxNumber = Integer.MIN_VALUE;
            for (int num : nums) {
                if (num > maxNumber) {
                    maxNumber = num;
                }
            }
            missingNumber = maxNumber + 1;
        }

        return missingNumber;
    }

    public static void main(String[] args) {
        int[] nums1 = {1, 2, 4, 5};
        int[] nums2 = {1, 2, 3, 4, 5};
        int[] nums3 = {2, 3, 4, 5};

        System.out.println(getMissingNumber(nums1)); // 输出 3
        System.out.println(getMissingNumber(nums2)); // 输出 6
        System.out.println(getMissingNumber(nums3)); // 输出 1
    }
}

在上面的示例中,getMissingNumber 方法接受一个整数数组作为参数,并返回缺失的最小数字。在 main 方法中,我们分别测试了三种情况下的结果

java 根据一组数字得到其中缺了的数值且是最小的若没有缺的则取最大值+1

原文地址: https://www.cveoy.top/t/topic/hLxG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录