[leetcode] Search for a Range
2015-03-17 15:30
399 查看
Search for a Range
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
[-1, -1].
For example,
Given
[5, 7, 7, 8, 8, 10]and target value 8,
return
[3, 4].
分析:二分查找
class Solution { public: void Searching(vector<int> &ret, int A[], int s, int e, int target) { if(s > e) { ret.push_back(-1); ret.push_back(-1); return; } int mid = (s+e)/2; if(A[mid] < target) Searching(ret, A, mid+1, e, target); else if(A[mid] > target) Searching(ret, A, s, mid-1, target); else { int i = mid - 1; while(i >= s && A[i] == A[mid]) i--; ret.push_back(i + 1); i = mid + 1; while(i <= e && A[i] == A[mid]) i++; ret.push_back(i - 1); } } vector<int> searchRange(int A[], int n, int target) { vector<int> ret; if(target < A[0] || target > A[n-1]) { ret.push_back(-1); ret.push_back(-1); } else Searching(ret, A, 0, n-1, target); return ret; } };
相关文章推荐
- leetcode -- Search for a Range (TODO)
- LeetCode Search for a Range
- LeetCode —— Search for a Range
- LeetCode | Search for a Range
- leetcode: Search for a Range
- LeetCode: Search for a Range
- [Leetcode 89] 34 Search for a Range
- LeetCode 38: Search for a Range
- Leetcode Search for a Range
- [LeetCode]Search for a Range
- [Leetcode] Search for a Range
- [LeetCode] Search for a Range
- [LeetCode] Search for a Range 解题报告
- LeetCode: Search for a Range
- leetcode 96: Search for a Range
- [LeetCode] Search for a Range
- [leetcode] Search for a Range
- [Leetcode] Search for a Range
- Leetcode: Search for a Range
- LeetCode - Search for a Range