建设带数据搜索的网站,wordpress中视频播放器,如何做视频购物网站,wordpress前进后退给定一个按照升序排列的整数数组 nums#xff0c;和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值#xff0c;返回 [-1, -1]。
示例 1:
输入: nums [5,7,7,8,8,10], target 8 输…给定一个按照升序排列的整数数组 nums和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值返回 [-1, -1]。
示例 1:
输入: nums [5,7,7,8,8,10], target 8 输出: [3,4] 示例 2:
输入: nums [5,7,7,8,8,10], target 6 输出: [-1,-1]
思路二分查找
提交的代码
class Solution { public int[] searchRange(int[] nums, int target) { int low0,highnums.length-1,mid-1,flag1; while(lowhigh) { mid (lowhigh)/2; if(nums[mid]target) { flag0; break; } else if(nums[mid]target) { high mid-1; } else { low mid 1; } } int arr[] new int[2]; if(nums.length1targetnums[0]) { arr[0]0; arr[1]0; return arr; } if(flag1) { arr[0]-1; arr[1]-1; return arr; } else { arr[0] mid; arr[1] mid; for(int imid;i0;i--) { if(nums[i]nums[mid]) { arr[0] i; } } for(int imid;inums.length;i) { if(nums[i]nums[mid]) { arr[1] i; } } return arr; } } }
完整的代码 public class Solution34 { public static int[] searchRange(int[] nums, int target) { int low0,highnums.length-1,mid-1,flag1; while(lowhigh) { mid (lowhigh)/2; if(nums[mid]target) { flag0; break; } else if(nums[mid]target) { high mid-1; } else { low mid 1; } } int arr[] new int[2]; if(nums.length1targetnums[0]) { arr[0]0; arr[1]0; return arr; } if(flag1) { arr[0]-1; arr[1]-1; return arr; } else { arr[0] mid; arr[1] mid; for(int imid;i0;i--) { if(nums[i]nums[mid]) { arr[0] i; } } for(int imid;inums.length;i) { if(nums[i]nums[mid]) { arr[1] i; } } return arr; } } public static void main(String[] args) { int nums[] {5,7,7,8,8,10}; int target 8; int a[] new int[2]; asearchRange(nums,target); for(int i 0;i2;i) { System.out.println(a[i]); } } }