- 문제 링크: https://leetcode.com/problems/binary-search/
- 난이도: Easy
정렬된 숫자 배열이 주어지고, target을 찾아 인덱스를 반환한다.
기초적인 이분탐색 문제.
주의할 점은 l <= r 부분과 mid 계산 부분. 타 언어에서는 (l + r) / 2 처럼 쓰면 overflow가 날 수 있으니, 아래처럼 쓰는게 좋다
이 문제는 l == r 인 부분까지 체크해야 한다
class Solution:
def search(self, nums: List[int], target: int) -> int:
l, r = 0, len(nums)-1
while l <= r:
mid = l + ((r-l) // 2)
v = nums[mid]
if v == target:
return mid
elif v < target:
l = mid + 1
else:
r = mid - 1
return -1
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 121. Best Time to Buy and Sell Stock (0) | 2024.09.08 |
---|---|
[LeetCode][Python] 74. Search a 2D Matrix (0) | 2024.09.08 |
[LeetCode][Python] 739. Daily Temperatures (0) | 2024.09.08 |
[LeetCode][Python] 22. Generate Parentheses (0) | 2024.09.08 |
[LeetCode][Python] 150. Evaluate Reverse Polish Notation (0) | 2024.09.08 |