1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { int n = nums.size(); int i = lb(nums, 0, n, target); if (i == n || nums[i] != target) return {-1, -1}; return {i, lb(nums, i, n, target + 1) - 1}; }
int lb(const vector<int> &nums, int l, int r, int target) { while (l < r) { int m = l + (r - l) / 2; if (nums[m] < target) { l = m + 1; } else { r = m; } } return l; } };
|