classSolution { public: vector<int> searchRange(vector<int>& nums, int target){ if(nums.empty())return {-1,-1}; int l = LeftBound(nums,target);
if(nums[l]!=target){ return {-1,-1}; } int r = RightBound(nums,target);
return {l,r}; } // 对应bsearch_1 intLeftBound(vector<int>& nums, int target) { int l = 0; int r = nums.size() - 1; while (l < r) { int mid = (l + r) >> 1; if (nums[mid] >= target) { r = mid; } else { l = mid + 1; } } return l; }
// 对应bsearch_2 intRightBound(vector<int>& nums, int target) { int l = 0; int r = nums.size() - 1; while (l < r) { int mid = (l + r + 1) >> 1; if (nums[mid] <= target) { l = mid; } else { r = mid - 1; } } return l; } };
未找到相关的 Issues 进行评论
请联系 @bugcat9 初始化创建