Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- vector<int> searchRange(vector<int>& nums, int target) {
- return {findLeftmost(nums, target), findRightmost(nums, target)};
- }
- int findLeftmost(vector<int>& nums, int target){
- int l=0, r=nums.size();
- if(!r) return -1;
- while(l<r){
- int mid = (l+r)/2;
- if(nums[mid] < target)
- l = mid+1;
- else
- r = mid;
- }
- if(l < 0 || l >= nums.size() || nums[l] != target) return -1;
- return l;
- }
- int findRightmost(vector<int>& nums, int target){
- int l=0, r=nums.size();
- if(!r) return -1;
- while(l<r){
- int mid = (l+r)/2;
- if(nums[mid] > target)
- r = mid;
- else
- l = mid+1;
- }
- if(r-1 < 0 || r-1 >= nums.size() || nums[r-1] != target) return -1;
- return r-1;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement