
1,问题简述
数组nums包含从0到n的所有整数,但其中缺了一个。
请编写代码找出那个缺失的整数。
你有办法在O(n)时间内完成吗?
2,示例
示例 1:
输入:[3,0,1]
输出:2
示例 2:
输入:[9,6,4,2,3,5,7,0,1]
输出:83,题解思路
桶排序
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文系列文章等都可以在历史文章进行查找的。