LeetCode Search for a Range

来源:互联网 发布:网络推广这工作靠谱吗 编辑:程序博客网 时间:2024/06/07 03:12

思路:
二分法找到nums中得target,然后左右扩展,返回坐标。

class Solution {public:    vector<int> searchRange(vector<int>& nums, int target) {        vector<int> res = {-1, -1};        int i = 0, j = nums.size() - 1;        while(i <= j) {            int mid = (i + j)/2;            if(nums[mid] == target) {                int left = mid - 1;                int right = mid + 1;                while(left >= 0 && nums[left] == target) left--;                while(right <= j && nums[right] == target) right++;                res[0] = left + 1;                res[1] = right - 1;                return res;            }else if(nums[mid] < target) {                i = mid + 1;            }else {                j = mid - 1;            }        }        return res;    }};
0 0
原创粉丝点击