给定一个按自然数顺序递增用逗号分割的数组,请找出其中第一个缺失的数。
例如 0 , 1 , 2 , 3 , 4 , 5 , 7 , 8 中,第一个缺失的数是 6。
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 中,第一个缺失的数是 7。
数据范围:
给定一个以逗号(,)分割的数字串。
输出缺失的数字
0,1,2,3,4,5,7
6
0,1,2,3,4,5,6,7
8
import java.util.Scanner;
/**
* @Author: coderjjp
* @Date: 2020-05-10 18:55
* @Description:
* @version: 1.0
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] nums = sc.nextLine().split(",");
// for (int i = 0; i < nums.length; i++)
// if (i != Integer.valueOf(nums[i])){
// System.out.println(i);
// return;
// }
int l = 0, r = nums.length, mid;
while (l <= r){
mid = (l + r) >>1;
if (mid == Integer.valueOf(nums[mid]))
l = mid + 1;
else
r = mid - 1;
}
System.out.println(l);
}
}