LeetCode69|消失的数字

时间:2022-07-26
本文章向大家介绍LeetCode69|消失的数字,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1,问题简述

数组nums包含从0到n的所有整数,但其中缺了一个。

请编写代码找出那个缺失的整数。

你有办法在O(n)时间内完成吗?

2,示例

示例 1:
输入:[3,0,1]
输出:2

示例 2:

输入:[9,6,4,2,3,5,7,0,1]
输出:8

3,题解思路

桶排序

4,题解程序

 
public class MissingNumberTest {
    public static void main(String[] args) {
        int[] nums = {9, 6, 4, 2, 3, 5, 7, 0, 1};
        int missingNumber = missingNumber(nums);
        System.out.println("missingNumber = " + missingNumber);
    }

    public static int missingNumber(int[] nums) {
        if (nums == null || nums.length == 0) {
            return -1;
        }
        int[] newArray = new int[nums.length + 1];
        for (int num : nums) {
            newArray[num]++;
        }
        for (int i = 0; i < newArray.length; i++) {
            if (newArray[i] == 0) {
                return i;
            }
        }
        return -1;
    }
}

5,题解程序图片版

6,总结

之前自己已经分享了几篇关于桶排序的使用了,这里又基于桶排序进行解题了,最近一段时间的输出文章都是自己之前做过的内容,自己打算将做过的题都整理成一篇篇文章进行梳理一下,喜欢看java的文章可以查看历史记录,本人写过Mybatis框架的系列文章,包括简单的增删改查,高级用法,都是工作中常用的,JDK源码也写了十几篇,MySQL文系列文章等都可以在历史文章进行查找的。