问题:
这个题目有个边界条件是,一定要判断如果缺少的是最后一个数怎么办?意思就是她给你的数里面没缺东西,你要把下一个数返回了。
public class Solution {
public int missingNumber(int[] nums) {
Arrays.sort(nums);
if(nums.length-1==nums[nums.length-1])
{
return nums.length;
}
if(nums.length==1)
{
return 0;
}
return help(nums,0,nums.length-1);
}
public int help(int [] nums,int startIndex,int endIndex)
{
if(endIndex<startIndex)
{
return nums[startIndex]-1;
}
int middleIndex=(startIndex+endIndex)/2;
if(nums[middleIndex]==middleIndex)
{
return help(nums,middleIndex+1,endIndex);
}
else
{
return help(nums,startIndex,middleIndex-1);
}
}
}