剑指 Offer 53 - II. 0~n-1中缺失的数字
这道题的链接: 剑指 Offer 53 - II. 0~n-1中缺失的数字
这道题的思路很简单,你想,如果一个从0开始的数组缺少一个数组,那么从缺少的部门开始,数字和下标肯定是不一致的,所以我们可以采用二分法,根据下标和数字的一致和不一致性找到不一致的开头,这就找到这个数字的位置。
所以就像一个力扣的大佬所说,排序数组中的搜索数组就可以用二分法解决。
class Solution {
public int missingNumber(int[] nums) {
int i = 0, j = nums.length - 1;
while(i <= j){
int m = (i + j) / 2;
if(nums[m] == m) {
i = m + 1;
} else {
j = m - 1;
}
}
return i;
}
}