[LeetCode] Search for a Range
2013-01-28 15:10
671 查看
class Solution { public: int find_left(int A[], int s, int t, int target) { int l = s; int r = t; while (l <= r) { int p = (l + r) / 2; if (A[p] < target) l = p + 1; else r = p - 1; } return l; } int find_right(int A[], int s, int t, int target) { int l = s; int r = t; while (l <= r) { int p = (l + r) / 2; if (A[p] > target) r = p - 1; else l = p + 1; } return r; } vector<int> searchRange(int A[], int n, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> ret; int s = 0; int t = n - 1; while (s <= t) { int p = (s + t) / 2; if (A[p] == target) { int l = find_left(A, s, p, target); int r = find_right(A, p, t, target); ret.push_back(l); ret.push_back(r); return ret; } else if (A[p] < target) { s = p + 1; } else { t = p - 1; } } ret.push_back(-1); ret.push_back(-1); return ret; } };
Small Case: 12ms
Large Case: 64ms
Time: O(lgn)
Space: O(1)
相关文章推荐
- LeetCode:Search for a Range
- leetcode Search for a Range
- leetcode 刷题之路 21 Search for a Range
- Leetcode34. Search for a Range
- Search for a Range -- LeetCode
- leetcode 34. Search for a Range
- [Leetcode]Search for a Range
- LeetCode:Search for a Range
- [leetcode] Search for a Range
- [LeetCode] Search for a Range
- 31 leetcode - Search for a Range
- LeetCode:Search for a Range
- leetcode 34. Search for a Range
- Search for a Range--LeetCode
- [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 (Python)
- LeetCode(34)Search for a Range