[LeetCode/Java] 153. Find Minimum in Rotated Sorted Array

yuKeon·2023년 9월 4일
0

LeetCode

목록 보기
23/29
post-thumbnail

0. 문제

https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/?envType=study-plan-v2&envId=top-interview-150


1. 문제 설명

  • 정수 배열이 주어질 때, 최대값의 인덱스를 반환하시오.

2. 문제 풀이

2.1. 접근법 : 이분탐색

  • 만약 중간 인덱스의 값이 오른쪽 끝 값보다 크다면, 최소 값은 mid의 오른쪽에 위치할 것이라고 예측한다.
  • 따라서 left를 mid + 1로 변경하여 검색 범위를 오른쪽으로 좁힌다.
  • 중간 값이 오른쪽 끝 값보다 작을 때는 최소값은 왼쪽에 있을 것이라고 예측한다.
  • 따라서 right를 mid로 설정하여 검색 범위를 좌측으로 좁힌다.
class Solution {
    public int findPeakElement(int[] nums) {
        int left = 0;
        int right = nums.length - 1;

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

4. 결과


0개의 댓글