[LeetCode] 704. Binary Search

김민우·2023년 4월 1일
0

알고리즘

목록 보기
169/189

- Problem

704. Binary Search

오름차순으로 정렬된 정수 배열 nums와 임의의 정수 target이 주어진다. targetnums에 존재한다면 해당 인덱스를 반환하고, 그렇지 않다면 -1을 반환하면 된다.

아주 심플한 이분 탐색으로 해결할 수 있는 문제다.

- 내 풀이 (이분 탐색)

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1

        while left <= right:
            mid = (left + right) // 2
            
            if mid == len(nums):
                return -1
            
            find_num = nums[mid]

            if find_num == target:
                return mid
            
            elif find_num > target:
                right = mid - 1
            
            else:
                left = mid + 1
        
        return -1

- 결과

  • 시간 복잡도: O(logN)
  • 공간 복잡도: O(1)
profile
Pay it forward.

0개의 댓글