[ LeetCode | Java ] 162. Find Peak Element 🛠️

dokim·2023년 9월 4일
post-thumbnail

🏷️162. Find Peak Element


1. 문제 설명

  • 피크 요소는 이웃보다 엄격하게 큰 요소입니다.
  • 0으로 색인된 정수 배열 nums가 주어지면, 피크 요소를 찾아 인덱스를 반환합니다. 배열에 여러 개의 피크가 있는 경우, 피크 중 아무 인덱스나 반환합니다.
  • nums[-1] = nums[n] = -∞라고 상상할 수 있습니다. 즉, 배열 외부에 있는 이웃보다 항상 엄격하게 큰 요소로 간주됩니다.
  • O(log n) 시간 내에 실행되는 알고리즘을 작성해야 합니다.


2. 접근 방법


3. 구현 코드

class Solution {
    public int findPeakElement(int[] nums) {
        
        int left = 0;
        int right = nums.length - 1;

        while (right > left) {
            int mid = (left + right) / 2;
            if (nums[mid] < nums[mid + 1]) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }
        
        return right;
    }
}

4. 개선 사항


5. 최종 회고


6. 참고

0개의 댓글