본문 바로가기

Algorithm

[leetcode 75] 704. Binary Search

문제해석

정렬된 숫자가 들어있는 배열 nums가 주어졌을 때 정수 target의 위치를 반환하기.

알고리즘의 시간복잡도는 O(log n)이어야 한다.

 

정답 예

public int search(int[] nums, int target) {
    int start = 0, end = nums.length - 1;
    int mid;

    while (start <= end) {
        mid = (start + end) / 2;
        if (target > nums[mid]) {
            start = mid + 1;
        } else if (target < nums[mid]) {
            end = mid - 1;
        } else {
            return mid;
        }
    }

    return -1;
}

이진탐색 기본 문제