给定一个按自然数顺序递增用逗号分割的数组,请找出其中第一个缺失的数。
例如 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); } }