福建建设厅网站,杭州建设网双标化工地2022年,百度快照怎么用,做招聘图片的网站给定一个按照升序排列的整数数组 nums#xff0c;和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target#xff0c;返回 [-1, -1]。
进阶#xff1a;
你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗#xff1…给定一个按照升序排列的整数数组 nums和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target返回 [-1, -1]。
进阶
你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗
示例 1
输入nums [5,7,7,8,8,10], target 8 输出[3,4]
代码
class Solution {public int[] searchRange(int[] nums, int target) {int nnums.length,l0,rn-1;while (lr)//二分查找{int midl(r-l)/2;if(nums[mid]target){int rimid,lemid;while (le0nums[le]target)//向左移动到左端le--;le;while (rinnums[ri]target)//向右移动到最右端ri;ri--;return new int[]{le,ri}; }else if(nums[mid]target){rmid-1;}else lmid1;}return new int[]{-1,-1};//找不到}
}