有一個有序數(shù)組arr擂煞,其中不含有重復元素诬辈,請找到滿足arr[i]==i條件的最左的位置酵使。如果所有位置上的數(shù)都不滿足條件,返回-1焙糟。
給定有序數(shù)組arr及它的大小n口渔,請返回所求值。
測試樣例:
[-1,0,2,3],4
返回:2
class Find {
public:
int findPos(vector<int> arr, int n) {
// write code here
int left = 0, right = n-1;
int res = -1;
while(left <= right){
int mid = (left + right) / 2;
if(arr[mid] == mid){
res = mid;
right = mid - 1;
}else if(arr[mid] > mid){
right = mid - 1;
}else{
left = mid + 1;
}
}
return res;
}
};