(C++) LeetCode 35 : 삽입 위치 찾기

문제

질문 불러오는 중… – LeetCode

암호
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의 초기값은 마지막 위치로 설정되어야 합니다.