LeetCode 34.Search for a Range
2015-02-17 12:00
387 查看
题目:
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
return
分析与解答:看到题目就在想,这不就是STL里面的equalrange吗。依然是二分查找,只是查找停止的条件更严格了一些。可以分两次查找。第一次找左边界,第二次找右边界。
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].
分析与解答:看到题目就在想,这不就是STL里面的equalrange吗。依然是二分查找,只是查找停止的条件更严格了一些。可以分两次查找。第一次找左边界,第二次找右边界。
class Solution { public: vector<int> searchRange(int A[], int n, int target) { int left = 0, right = n; while(left != right) { int mid = left + (right - left) / 2; if(A[mid] >= target) right = mid; else left = mid + 1; } int left1 = left; left = 0, right = n; while(left != right) { int mid = left + (right - left) / 2; if(A[mid] > target) right = mid; else left = mid + 1; } if(A[left1] != target)//没找到target return vector<int>{-1,-1}; else return vector<int>{left1,left - 1}; } };
相关文章推荐
- Leetcode_34_Search for a Range
- [leetcode 34] Search for a Range
- Search for a Range - LeetCode 34
- Leetcode34 Search for a Range
- leetCode 34.Search for a Range (搜索范围) 解题思路和方法
- LeetCode 34 Search for a Range
- leetcode 34 -- Search for a Range
- [Leetcode 34, Medium] 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
- LeetCode --- 34. Search for a Range
- [LeetCode]34 Search for a Range
- LeetCode 34 — Search for a Range(C++ Java Python)
- [Leetcode] 34. Search for a Range
- LeetCode(34) Search for a Range
- 【LeetCode 34】Search for a Range
- LeetCode_34---Search for a Range