Time Cost
8min37s
Code
- My Solution
class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { if (nums.size() == 0) return {-1, -1}; int base = 0, ceil = nums.size() - 1; int index = (base + ceil) / 2, left = -1, right = -1; while (base <= ceil) { if (nums[index] == target) { left = right = index; // left forward for (int i=index-1; i>=0; i--) { if (nums[i] != target) { break; } left = i; } for (int i=index+1; i<nums.size(); i++) { if (nums[i] != target) { break; } right = i; } break; }else if (nums[index] < target) { base = index + 1; }else { ceil = index - 1; } index = (base + ceil) / 2; } return {left, right}; } };