
题目描述给你一个按照非递减顺序排列的整数数组 nums和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。示例 1输入nums [5,7,7,8,8,10], target 8输出[3,4]示例 2输入nums [5,7,7,8,8,10], target 6输出[-1,-1]示例 3输入nums [], target 0输出[-1,-1]提示0nums.length1050 nums.length 10^50nums.length105−109nums[i]109-10^9 nums[i] 10^9−109nums[i]109nums 是一个非递减数组−109target109-10^9 target 10^9−109target109思路直接调用upper_bound和lower_bound。代码classSolution{public:vectorintsearchRange(vectorintnums,inttarget){vectorint::iterator it1lower_bound(nums.begin(),nums.end(),target);vectorint::iterator it2upper_bound(nums.begin(),nums.end(),target);if(it1nums.end()||it1it2){return{-1,-1};}else{return{(int)(it1-nums.begin()),(int)(it2-nums.begin()-1)};}}};