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