Find Peak Element

bong bong·2023년 9월 5일

알고리즘

목록 보기
12/31

요구사항

피크 요소는 인접 요소보다 엄격하게 큰 요소입니다.

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;
    }
}
profile
let's go invent tomorrow rather than worrying about what happened yesterday - Steven Paul Jobs

0개의 댓글