| 문제 |
위치 찾기 – LeetCode
이 실제 인터뷰 질문을 해결할 수 있습니까? 검색 삽입 위치 – 개별 정수의 정렬된 배열과 대상 값이 주어지면 대상이 발견되면 인덱스가 반환됩니다. 그렇지 않은 경우 순서대로 삽입된 인덱스를 반환합니다. 당신은 w해야합니다
leetcode.com
| 암호 |
class Solution
{
public:
int searchInsert(vector<int> &nums, int target)
{
int lo = 0;
int hi = nums.size() - 1;
int res = nums.size();
while (lo <= hi)
{
int md = (lo + hi) / 2;
if (nums(md) < target)
{
lo = md + 1;
}
else
{
res = md;
hi = md - 1;
}
}
return res;
}
};
| 설명 |
오름차순으로 벡터와 숫자가 주어지면 문제는 오름차순을 유지하면서 해당 숫자를 삽입할 첫 번째 위치를 찾는 것입니다.
중심점이 대상보다 작으면 왼쪽 영역을 제외하고 삽입할 수 없습니다.
target보다 크거나 같으면 삽입할 수 있으므로 오른쪽 구획을 제외하고 색인을 저장합니다.
반복하면 res에 삽입할 수 있는 첫 번째 위치가 저장됩니다.
그러나 벡터의 모든 숫자가 목표보다 작은 경우 res는 초기 값에서 변경되지 않습니다.
res의 초기값은 마지막 위치로 설정되어야 합니다.