Find First and Last Position of Element in Sorted Array

ㅋㅋ·2022년 7월 25일
0

알고리즘-leetcode

목록 보기
31/135

정렬된 정수형 벡터와 찾으려는 정수 하나가 주어진다.

찾으려는 정수의 첫번째 인덱스와 마지막 인덱스를 찾는 문제이다.

해당 정수가 벡터에 없다면 첫번째와 마지막 인덱스를 -1로 반환

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {
        
        auto firstTarget = lower_bound(nums.begin(), nums.end(), target);
        if (firstTarget == nums.end() || *firstTarget != target)
        {
            return {-1, -1};
        }
        
        auto lastTarget = upper_bound(nums.begin(), nums.end(), target);
        advance(lastTarget, -1);
        
        int firstIndex{(int) (firstTarget - nums.begin())};
        int lastIndex{(int) (lastTarget - nums.begin())};
        
        return {firstIndex, lastIndex};
    }
};

0개의 댓글