정수의 단조롭게 증가하는 배열을 가정하고 각 요소는 독특하다.
대상 요소 중 어느 하나에 해당하는 함수 값을 프로그래밍의 배열을 검색 할 수 있습니다.
예를 들어, 어레이 [-3, -1, 1, 3, 5, 및 수 3 인덱스와 동일하다.
시료
입력 : - (3) -1, 1, 3, 5]
출력 : 3
참고 :이없는 경우는 -1을 돌려줍니다.
class Solution {
public:
int getNumberSameAsIndex(vector<int>& nums) {
if(!nums.size()) return -1;
int l = 0,r = nums.size() - 1;
int ans = -1;
while(l <= r) {
int mid = (l + r) >> 1;
if(nums[mid] <= mid) {
l = mid + 1;
ans = mid;
}
else {
r = mid - 1;
}
}
if(nums[r] != r) return -1;
return ans;
}
};