LeetCode-----34. Search for a Range(查找范围)
2016-09-28 21:16
393 查看
Given a sorted array of integers, find the starting and ending position of a given target value.
Your algorithm's runtime complexity must be in the order of O(log n).
If the target is not found in the array, return
For example,
Given
target value 8,
return
//[1,2,3,4,4,4,5,6] 4 [2,4]
改进的二分法log(n):
Your algorithm's runtime complexity must be in the order of O(log n).
If the target is not found in the array, return
[-1, -1].
For example,
Given
[5, 7, 7, 8, 8, 10]and
target value 8,
return
[3, 4].
//[1,2,3,4,4,4,5,6] 4 [2,4]
改进的二分法log(n):
public class Solution { public int[] searchRange(int[] nums, int target) { int start=0,mid,end=nums.length-1; int [] arr={-1,-1}; while(start<end-1){ mid=(start+end)/2; if(nums[mid]==target){end=mid;} else if(nums[mid]<target){start=mid;} else{end=mid;} } if(nums[start]==target){arr[0]=start;} else if(nums[end]==target){arr[0]=end;} else{arr[0]=-1;arr[1]=-1;return arr;} start=0;end=nums.length-1; while(start<end-1){ mid=(start+end)/2; if(nums[mid]==target){start=mid;} else if(nums[mid]<target){start=mid;} else{end=mid;} } if(nums[end]==target){arr[1]=end;} else if(nums[start]==target){arr[1]=start;} else{arr[0]=-1;arr[1]=-1;return arr;} return arr; } }
相关文章推荐
- LeetCode 34. Search for a Range(有序数组,查找给定值范围)
- Leetcode刷题记——34. Search for a Range(查找一个范围)
- LeetCode 34. Search for a Range (找到一个范围)
- leetcode 34. Search for a Range(C语言,查询范围)46
- leetcode 34. Search for a Range (二分查找)
- leetCode 34.Search for a Range (搜索范围) 解题思路和方法
- LeetCode 34 Search for a Range(搜索范围)
- LeetCode-Search for a Range-搜索范围-二分查找
- [leetcode-二分查找]--34. Search for a Range
- leetCode 34.Search for a Range (搜索范围) 解题思路和方法
- LeetCode | Search for a Range(查找数据出现的范围)
- [leetcode] 【查找】 34. Search for a Range
- leetcode 34. Search for a Range 二分查找
- LeetCode 34. Search for a Range(搜索范围)
- LeetCode 34 Search For A Range 二叉查找相关(二)
- [LeetCode] 34. Search for a Range 搜索一个范围(Find First and Last Position of Element in Sorted Array)
- leetcode题解:Search for a Range (已排序数组范围查找)
- LeetCode 34 Search for a Range (有序数组中查找给定数字的起止下标)
- [LeetCode-34] Search for a Range (寻找有序数组中关键值的索引范围)
- leetcode_34——Search for a Range(二分查找)