1, demand
-
A length of a length of N-1 is unique in the number of sorted sorting arrays, and each number is within 0 to N-1;
-
among the n numbers in the range 0 to N-1, and only one number is not in the array, please find this number;
two, two -point method
2.1 Analysis of ideas
- According to the sorting number, first think of the two -point method;
- First divide the original arrays into left and right array, and the left array meets Nums [i] = i, and the right array meets NUMS [i]! = I, where i starts from 0, so the missing number is the right of the right The index corresponding to the first element of the array;
- So now use dictators to find the first element of the right array, initialize the strategy. When num [mid] == m, it means that the element is still on the right, so that i = mid + 1, when nums [mid]! = M At this time, because it is not necessarily the first element of the right array, the j = MID -1 is allowed, so whether it is the first element, the last I will return;
2.2 code implementation
class solution {
Public int missingnumber (int [] nums) {
// The specified interval closed left and right closed
int i = 0;
int j = nums.length -1;
While (i <= j) {
// int m = i + (j -i) / 2;
int m = (i + j) / 2;
if (nums [m] == m) {
i = m + 1;
} else {
j = m -1;
}
}
Return i;
}
}
2.3 Analysis of complexity
- Time complexity is
, the complexity of the two -point method to the number level;
- Space complexity is
, a few variables use extra space of constant size;
3. Learning address
Author: krahets