Fixed Point
给一个数组, 求第一个ary[i] = i的位置.
二叉搜索. 需要一直往左搜, 直到最后一个位置.
class Solution {
public int fixedPoint(int[] A) {
int start = 0;
int end = A.length - 1;
int res = -1;
while (start <= end) {
int mid = start + (end - start) / 2;
if(A[mid] == mid){
res = mid;// instead of return, record the res and move end to mid - 1;
end = mid - 1;
}
else if(A[mid] < mid) {
start = mid + 1;
}
else {
end = mid - 1;
}
}
return res;
}
}