该题来自牛客网
题目描述
从0,1,2,…,n这n+1个数中选n个数,组成有序数组,找出这n个数中缺失的那个数,要求O(n)尽可能小。
例如:输入[0,1,2,3,4,5,7]
输出:6
解决思路
一次遍历循环,差值大于1的就是缺失的数值位置。
实现代码
public static int findNumber(int[] arr){
int target = 0;
for (int i = 0; i < arr.length-1 ; i++) {
if(arr[i+1] - arr[i] > 1){
target = arr[i] + 1;
break;
}
}
return target;
}
public static void main(String[] args){
int[] arr1 = {1,2,3,4,5,6,8,9,10,11};
System.out.println("缺失的数为"+findNumber(arr1));
}
运行结果: