网站建设未来发展前景,旅游网页效果图,wordpress server error,wordperss网站做负载均衡给你一个按照非递减顺序排列的整数数组 nums#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target#xff0c;返回 [-1, -1]。
你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1#xff1a…给你一个按照非递减顺序排列的整数数组 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]
提示
0 nums.length 105 -109 nums[i] 109 nums 是一个非递减数组 -109 target 109
class Solution {public int[] searchRange(int[] nums, int target) {int index binarySearch(nums,target);if(index -1){return new int[]{-1,-1};}int left index;int right index;while(left-1 0 nums[left-1] target){left--;}while(right1 nums.length-1 nums[right1] target){right;}return new int[]{left,right};}public int binarySearch(int[] nums,int target){int left 0;int right nums.length - 1;while(left right){int mid left (right-left)/2;if(nums[mid] target){return mid;}else if(nums[mid] target){left mid1;}else{right mid-1;}}return -1;}}