피크 요소는 인접 요소보다 엄격하게 큰 요소입니다.
0-인덱스 정수 배열이 주어지면 nums피크 요소를 찾고 해당 인덱스를 반환합니다. 배열에 여러 피크가 포함된 경우 피크 중 하나 에 대한 인덱스를 반환합니다 .
당신은 그것을 상상할 수 있습니다 nums[-1] = nums[n] = -∞. 즉, 요소는 항상 배열 외부에 있는 이웃보다 엄격하게 더 큰 것으로 간주됩니다.
시간 에 맞춰 실행되는 알고리즘을 작성해야 합니다 O(log n).
class Solution {
public int findPeakElement(int[] nums) {
int left = 0;
int right = nums.length - 1;
while (left < right) {
int mid = left + (right - left) / 2;
if (nums[mid] > nums[mid + 1]) {
right = mid;
} else {
left = mid + 1;
}
}
return left;
}
}