class Solution { public: vector searchRange(vector& nums, int target) { vector result; int left_i = searchLeftIndex(nums, target), right_i = searchRightIndex(nums, target); cout << left_i << endl; cout << right_i << endl; if (left_i < nums.size() && nums[left_i] == target) { result.push_back(left_i); result.push_back(right_i); } else { result.push_back(-1); result.push_back(-1); } return result; } int searchLeftIndex(vector& nums, int target) { int left = 0, right = nums.size(); while(left < right) { int mid = left + (right - left)/2; if (nums[mid] >= target) { right = mid; } else { left = mid + 1; } } return left; } int searchRightIndex(vector& nums, int target) { int left = 0, right = nums.size(); while(left < right) { int mid = left + (right - left)/2; if (nums[mid] > target) { right = mid; } else { left = mid + 1; } } return right-1; } };