오름차순으로 정렬된 정수 배열 nums와 정수 target이 주어져요. target이 배열에 있으면 그 인덱스를, 없으면 -1을 반환해요.
시간 복잡도 O(log n)으로 풀어야 해요.
예시
예시 1
예시 2
제한 사항
- 1 ≤ nums.length ≤ 10,000
- nums는 중복 없이 오름차순 정렬되어 있어요.
- -10,000 ≤ nums[i], target ≤ 10,000
lo와 hi 포인터를 두고 mid = (lo + hi) >> 1 을 확인해요. nums[mid]가 target보다 작으면 lo = mid + 1, 크면 hi = mid - 1 이에요.
javascriptCopy codefunction search(nums, target) {let lo = 0;let hi = nums.length - 1;while (lo <= hi) {const mid = (lo + hi) >> 1;if (nums[mid] === target) return mid;if (nums[mid] < target) lo = mid + 1;else hi = mid - 1;}return -1;}
예시 테스트만 실행 (Cmd/Ctrl+Enter)
숨김 테스트까지 채점 (Cmd/Ctrl+Shift+Enter)
에디터를 불러오고 있어요…
코드를 작성하고Ctrl↵를 눌러 예시 테스트를 확인해 보세요.