검색 범위 (검색 범위)
1197 단어 LeetCodeLeetCode 문제 풀이 안내
오름차 순 으로 배 열 된 정수 배열 을 지정 합 니 다.
nums
목표 치 와 1 개 target
。주어진 목표 값 이 배열 의 시작 위치 와 끝 위 치 를 찾 습 니 다.당신 의 알고리즘 시간 복잡 도 는 반드시 O(log n) 등급.
배열 에 목표 값 이 존재 하지 않 으 면 되 돌려 줍 니 다.
[-1, -1]
。 예시 1:
: nums = [5,7,7,8,8,10]
, target = 8
: [3,4]
예시 2:
: nums = [5,7,7,8,8,10]
, target = 6
: [-1,-1]
문제 풀이 의 사고 방향.
public int[] searchRange(int[] nums, int target) {
int first = binarySearch(nums, target);
int last = binarySearch(nums, target + 1) - 1;
if (first == nums.length || nums[first] != target)
return new int[]{-1, -1};
else
return new int[]{first, Math.max(first, last)};
}
private int binarySearch(int[] nums, int target) {
int l = 0, h = nums.length; // h
while (l < h) {
int m = l + (h - l) / 2;
if (nums[m] >= target)
h = m;
else
l = m + 1;
}
return l;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.