leetcode search for a range
2015-03-28 23:57
176 查看
class Solution { public: vector<int> searchRange(int A[], int n, int target) { vector<int> ret; ret.push_back(-1); ret.push_back(-1); if(n < 1){ return ret; } ret.clear(); int left = 0, right = n - 1; int recleft = 0x7fffffff, recright = -1; while(left <= right){ int mid = (left + right) >> 1; if(A[mid] == target){ //search to left and right int rec = mid; while(rec >= 0 && A[rec] == target){ --rec; } //更新recleft和recright时对边界的处理 recleft = rec < 0 ? 0 : (rec + 1); rec = mid; while(rec < n && A[rec] == target){ ++rec; } recright = rec >= n ? (n - 1): (rec - 1); ret.push_back(recleft); ret.push_back(recright); //记得及时return! return ret; } else if(A[mid] > target){ right = mid - 1; } else{ left = mid + 1; } } ret.push_back(-1); ret.push_back(-1); 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